3

次のようなテストがあります。

[TestCase(12, Result= typeof(mytype))]
public mytype GetById(int id)
{
yada, yada, yada.

}

in the NUnit error window, I see this:

Test.Tester.GetById(12):
  Expected: <mytype>
  But was:  <mytype>

私の質問は、これは予想されることですか? 整数、文字列などではなく、独自の型の場合に戻り値の型を指定する方法はありますか? ウェブ上で見つけたすべての例は、文字列または整数のみを返しています。実際に mytype インスタンスを生成し、それが期待どおりであると言う必要がありますか?

これは NUnit 2.5.9 です。

4

2 に答える 2

1

Testcase Result=... は、結果の型ではなく、結果の値をチェックします。

type.ToString() と object.ToString() は同じメッセージになるため、エラーメッセージは誤解を招きます。

myTpe.ToString() メソッドをオーバーライドすると、エラー メッセージは次のようになります。

 Expected: <mytype>
 But was:  {your ToString() result goes here}

これらのテスト (nunit 2.5.7) は期待どおりに動作します

    [TestCase(12, Result = "0")]
    public String GetById(int id)
    {
        return "0";
    }

    [TestCase(12, Result = typeof(mytype))]
    public System.Type GetByIdType(int id)
    {
        return typeof(mytype);
    }
于 2010-12-30T06:17:45.240 に答える
0

結果がそのように渡されるのを見たことがありません。しかし、結果を別のパラメーターとして渡すことはできませんでしたか?

[TestCase(12, 1)] 
public mytype GetById(int id, int result) 
{ 
   Assert.AreEqual(12, 1);
} 

そして、それはおそらく明白なことを述べていますが、Expected: But was: は、「true」と true を比較したときに得られるものと非常によく似ています。

于 2010-12-29T12:42:43.417 に答える