NUnit使用备用构造函数执行

Nip*_*rus 2 .net c# nunit unit-testing

我有一个类有一些单元测试,但是当我运行测试时,我希望用不同的构造函数创建类.像这样的东西:

[TestFixture]
public class MyClass
{
    public MyClass() { /* set up for production */ }

    [TestFixtureConstructor]
    public MyClass() { /* set up for testing */ }

    [Test]
    public void FirstTest()
    {
        // assert some values
    }
}
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

我考虑过使用静态工厂方法在生产中创建类(使用私有构造函数),以及测试框架的公共构造函数.

有没有人有其他解决方案?

Noo*_*ilk 9

你不这样做.

你不会写你的测试里面,你在真正的代码中使用的类; 你在类外部编写测试.我相信大多数测试套件都有'拆解'的概念,而相反; 为给定的执行设置测试环境.