2010-12-17 8 views
3

を必要と私はこのようなテストがあります。NUnitの使用は

[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> 

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

これはNUnit 2.5.9です。

答えて

0

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

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

、それはおそらく、明白なことを述べていますが、予想される:しかしだった: は非常にあなたが真で「真」を比較したときに取得したいどのように聞こえます。

1

Testcase Result = ...結果の値ではなく結果の値をチェックします。 type.ToString()とObject.ToStringを()が同じmessgeにつながるので

にErrorMessageは誤解を招くおそれがあり

あなたmyTpe.ToString()メソッドをオーバーライドしにErrorMessageはなり

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); 
    } 
+0

ありがとうございます。私は実際にオブジェクトを返すことができ(そしてタイプをチェックすることができる)、複数のテストケースを一緒に使用し、それぞれのチェックを途中で実行し、その結果を呼び出し元に返すことを期待していました。 – adamx97