[英]split test definition and test implementation with nunit, xunit or visual studio test
我想将测试的定义及其实现拆分如下:
[TestFixture] public abstract class ContainerTests { [Test] public abstract void BuildContainer(); } public class UnityTest : ContainerTests { public override BuildContainer() { // Implementation } }
我想要一个场景的抽象定义,并以不同的方式实现它,以便我可以进行比较。 即使在基类中定义了TestRunner,也必须从继承的类中捕获所有测试。 有什么办法吗?
最好的问候,zimmy
使用xunit,您可以高兴地做:-
public abstract class ContainerTests
{
[Fact]
public abstract void BuildContainer();
}
public class UnityContainer : ContainerTests
{
public override void BuildContainer()
{
Assert.Equal(1,2);
}
}
如果可以编写您在NUnit中提供的代码,则意味着派生类的每个开发人员都必须进行名为BuildContainer
的测试。 该测试可以测试任何东西,甚至可以是空的。 因此,如果您的目的是强迫开发人员实施一项测试,以测试某些特定功能,则此举将无济于事。
但是,您可以做的是使用对派生类必须实现的特定抽象方法的调用在基类中实现测试。 通常,您希望这些方法做一些您可以在基类中声明的事情,而不是让它们自己执行所需的声明。
通常,由于无法在NUnit中覆盖测试方法,是由于作者认为在大多数情况下这不是一个好主意。 我很想听听这是一个反例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.