NUnit需要使用TestCase清晰度

时间:2010-12-17 02:21:16

标签: .net nunit testcase

我有这样的测试:

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

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分:0)

我还没有看到结果像以前那样传递过来。但是你不能把结果作为另一个参数传递给它吗?

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

它可能说明显而易见但是预期:但是: 听起来非常像你将“真实”与真实比较时得到的结果。