我有这样的测试:
[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。
答案 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);
}
它可能说明显而易见但是预期:但是: 听起来非常像你将“真实”与真实比较时得到的结果。