1
|
Francisco Noriega · 技术社区 · 15 年前 |
1
3
对MSTEST不太确定,但我相信你可以在努尼特用 parameterised tests 例如,使用实现类参数化,并使用Activator.CreateInstance将其实例化。 然而,更深层次的问题是,你愿意吗?您没有说您的接口是什么样子的,但是拥有一个接口的通常原因是允许不同的实现。例如,如果您有一个带有Area属性的IShape接口,那么它将由Circle、Square和Rorschachblot以不同的方式实现。ishape.area属性的测试可以可靠地断言什么?因此,一般来说,您可以实际地只测试类和(具体)方法。 当然,如果您的接口意味着在接口规范之外有语义保证(例如,区域总是大于0),那么您可以对您知道的所有实现进行测试。(对于您在创建测试时不知道的实现,您必须依赖于在带外通信这些附加需求,例如通过文档和信任实现者来遵守它们。当代码合同发布时,您将能够通过合同类更可靠地强加这些需求。) |
2
2
简短的回答,是的,你可以。更长的答案是,它将取决于很多因素,比如它在测试套件中的运行方式。 基本上你可以这样做:
然后您可以手动生成测试:
或者你可以用反射来做。这假设您知道如何动态地实例化每个foo,如果它有一个默认的构造函数,那么最好是:
最后一部分是从我上周写的一些代码的记忆中做同样的事情,它有点粗糙,但应该让你开始。当然,您可以使用LINQ来简化它,我只是不太清楚它的语法。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |