使用通用方法进行参数测试
在 NUnit 2.5 中你可以这样做:
[TestCase(1,5,7)]
public void TestRowTest(int i, int j, int k)
{
Assert.AreEqual(13, i+j+k);
}
你可以进行参数测试。
但我想知道你是否可以用通用测试方法进行参数测试? 即:
[TestCase <int>("Message")]
public void TestRowTestGeneric<T>(string msg)
{
Assert.AreEqual(5, ConvertStrToGenericParameter<T>(msg));
}
或者类似的东西。
In NUnit 2.5 you can do this:
[TestCase(1,5,7)]
public void TestRowTest(int i, int j, int k)
{
Assert.AreEqual(13, i+j+k);
}
You can do parametric test.
But I wonder whether you can do this or not, parametric test with generic test method? I.e.:
[TestCase <int>("Message")]
public void TestRowTestGeneric<T>(string msg)
{
Assert.AreEqual(5, ConvertStrToGenericParameter<T>(msg));
}
Or something similar.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下是 NUnit 2.5 发行说明中的引用链接文本
据此,非泛型类中可以有泛型测试方法。 如何?
我不太明白杰夫的评论。 在 .net 中,泛型既是编译时的,也是运行时的。 我们可以使用反射来找出与方法关联的测试用例属性,找出泛型参数,然后再次使用反射来调用泛型方法。 它会起作用,不是吗?
更新:好的,我现在知道怎么做了,希望还不算太晚。 您需要将泛型类型包含在参数列表中。 例如:
Here is the quote from the release note of NUnit 2.5 link text
According to this, it is possible to have generic test method in non-generic class. How?
I don't quite understand Jeff's comment. In .net generics is both compile-time and run-time. We can use the reflection to find out the test case attribute associated with a method, find out the generic parameter, and again use reflection to call the generic method. It will work, no?
Update: OK, I now know how and hope it is not too late. You need the generic type to be in the parameter list. For example:
您可以自定义 GenericTestCaseAttribute
这是 GenericTestCaseAttribute 的实现
You can make custom GenericTestCaseAttribute
Here is implementation of GenericTestCaseAttribute
创建一个私有方法并调用它:
Create a private method and call that: