0

私は次のような状況にあり、助けていただければ幸いです。

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?

}
4

1 に答える 1