NUnitでのすべての種類のパラメータ化されたテストのためのResult
- 引数があります。これは、等価性が.NETに組み込まれている単純な型に対してうまく機能します。 target.DoSomething
返しますMyType
テストのインスタンスを想定しNUnits結果の平等性を提供する
[TestCase("MyValue", Result = new MyType(...) /* doesn´t work as we can only use compile-time constants for attributes */]
public MyType Check(string value)
{
var target = ...
return target.DoSomething(value);
}
返されるインスタンスは、私は私のTestCase
内に設けたものに等しいことを確認する必要があります:テスト方法を確認するthere'saの方法は、複雑なオブジェクトを返す場合しかし、私は疑問に思います。 MyType
はいずれもIEquatable
も実装していないので、Equals
の同等性はReferenceEquals
を使用して決定されますが、それはもちろん間違っています。さらに私のコメントで述べたように、コンパイル時定数がないので、属性内にMyType
のインスタンスを作成できません。
私たちのテストにどのように複雑なインスタンスを提供し、結果がそれと等しいかどうかを確認するにはどうすればよいですか?
たとえば、FluentAssertionsライブラリには、複雑な型をその値で比較するアサーション拡張メソッド 'actual.ShouldBeEquivalentTo(expected)'があります。答えには素敵なメッセージが追加されます – Fabio