私は次のような状況にあり、助けていただければ幸いです。
public class Poco
{
public string SomeData { get;set; }
public string SomeMoreData { get;set; }
}
public class Worker
{
public Poco DoWork()
{
// do stuff
}
}
試験方法A........
[Test]
public static void TestPocoIsPopulated()
{
var objUt = new Worker();
var actual = objUt.DoWork();
var expected = new Poco { SomeData = "reusltOne", SomeMoreData = "resultTwo" };
actual.ShouldBeEquivalentTo(expected);
}
これはうまくいきます。ただし、ネストされたクラスの大規模なテストでは、ShouldBeEquivalentTo() の使用が面倒になるため、次のようにできるようにしたいと考えています...
編集:また、メソッドAではこれを行うことはできません.... var expected = new Poco { SomeData = [NOT_NULL] , SomeMoreData = "resultTwo" };
試験方法 B.......
[Test]
public static void TestPocoIsPopulated()
{
var objUt = new Worker();
var actual = objUt.DoWork();
actual.SomeData.Should().Be("resultOne");
actual.SomeMoreData.Should().Be("resultTwo");
}
ただし、新しいプロパティを Poco に追加すると、テスト方法 B は文句を言わず、プロパティがテストされない可能性があります。ただし、メソッド A を使用すると、ShouldBeEquivalentTo() が新しいプロパティが null であることに気付くため、テストは失敗します。
それで、私の質問は、次のような方法 C があるかどうかです。
試験方法 C …………
[Test]
public static void TestPocoIsPopulated()
{
var objUt = new Worker();
var actual = objUt.DoWork();
actual.SomeData.Should().Be("resultOne");
actual.SomeMoreData.Should().Be("resultTwo");
actual.Should().HaveAllPropertiesBeenTested().EqualTo(true); // <-------- is this possible?
}