にNullReference例外がスローされます。NUnitのCollectionOrderedConstraintは、だから私はC#でNUnitの3を使用してユニットテストのために次のコードを持ってnull以外の公共の読み取り専用フィールド
var skills = new[]
{
new Skill("aaaa"), //parameter is Name
new Skill("kkkk"), //parameter is Name
new Skill("zzzz"), //parameter is Name
};
Assert.That(skills, Is.All.Not.Null);
var skillNames = skills.Select(s => s.Name);
Assert.That(skillNames, Is.All.Not.Null);
Assert.That(skillNames, Contains.Item("aaaa"));
Assert.That(skillNames, Contains.Item("kkkk"));
Assert.That(skillNames, Contains.Item("zzzz"));
Assert.That(skills, Is.Ordered.By("Name")); //Fails
それはOrdered
アサーションになると、それは失敗し、 NullReferenceException: Object reference not set to an instance of an object.
をCollectionOrderedConstraint.Matches(IEnumerable actual)
からスローします。明らかに、値はnullではありません。これが正常に渡し、次の試験によって検証されています
var skillNames = new[]
{
new Skill("aaaa").Name,
new Skill("kkkk").Name,
new Skill("zzzz").Name,
};
Assert.That(skillNames, Is.Ordered); //Passes
私はこのテストも通過する際に問題が、By
制約ではなく、知っている:
var characters = new[]
{
new Character { InterestingTrait = "aaaa" },
new Character { InterestingTrait = "kkkk" },
new Character { InterestingTrait = "zzzz" },
};
Assert.That(characters, Is.Ordered.By("InterestingTrait")); //Passes
失敗間の私が知っている唯一の違いを合格していないケースでは、私たちがチェックしているフィールドは公開readonly
フィールドです。なぜnull参照例外がスローされますか? NUnitにこれに関する既知の問題はありますか?
あなたは[MCVE]私たちは簡単に自分のためにそれを再現できるの形でこれを提供してもらえますか? –