使用nunit,xunit或visual studio测试分割测试定义和测试实现

时间:2017-11-10 04:08:41

标签: c# visual-studio unit-testing testing nunit

我想将测试的定义与其实现分开如下:

[TestFixture]
public abstract class ContainerTests
{
    [Test]
    public abstract void BuildContainer();
}

public class UnityTest : ContainerTests
{
    public override BuildContainer()
    {
       // Implementation
    }
}

[TestFixture] public abstract class ContainerTests { [Test] public abstract void BuildContainer(); } public class UnityTest : ContainerTests { public override BuildContainer() { // Implementation } }

我希望对方案有一个抽象的定义,并以不同的方式实现它,以便我可以比较它们。 TestRunner必须从继承类中捕获所有测试,即使在基类中有定义。有没有办法做到这一点?

祝你好运, zimmy

2 个答案:

答案 0 :(得分:1)

使用xunit,您可以愉快地做到: -

mix.browserSync({
    proxy: 'something.test',
    host: 'something.test',
    open: 'external'
});

答案 1 :(得分:0)

如果可以编写您在NUnit中提供的代码,则意味着派生类的每个开发人员都必须进行名为BuildContainer的测试。那个测试可以测试任何东西,甚至只是空洞。因此,如果您的目的是强迫开发人员实施测试某些特定内容的测试,那么这将无法完成工作。

但是,您可以使用对派生类必须实现的特定抽象方法的调用在基类中实现测试。通常,您希望这些方法能够在基类中执行某些操作,而不是让它们自己执行所需的断言。

一般来说,缺乏在NUnit中覆盖测试方法的能力是由于作者认为在大多数情况下它并不是一个好主意。我有兴趣听到一个反例的案例。