如何确保类中的特定方法始终是第一个被调用的方法?

时间:2011-06-27 08:30:01

标签: .net unit-testing nunit

我不太确定这是否可行。

目前我需要在测试代码开始之前设置许可证信息,因为这些测试使用第三方组件库,需要我初始化许可证信​​息。许可证信息只需设置一次 - 在程序运行开始时。

但是根据我的理解,NUnit的哲学是你可以随时以任何顺序运行一个类,任何类,所以尽管每个类都有一个setup方法,但是没有一个setup方法,在测试开始时运行测试套件。但我可能错了。

无论如何确保方法始终是整个测试执行过程中第一个被调用的方法吗?

2 个答案:

答案 0 :(得分:3)

查看SetupFixture属性。您可以定义一个设置函数,以便为整个命名空间运行一次。

答案 1 :(得分:0)

一般情况下,我会尽量避免设置和拆卸。当我应该进行单元测试时,他们倾向于指出(特别是拆解)我正在编写集成测试。 但是,我知道你的情况。如果需要,我从处理许可的类派生testfixture。

public class LicencedTestFixture
{
    private LicenseComponent _licenseComponent;

    public LicencedTestFixture()
    {
        _licenseComponent = new LicenseComponent();
        _licenseComponent.Init();
    }

    ~LicencedTestFixture()
    {
        _licenseComponent.Shutdown();
    }

}  

测试夹具只是继承自类,这就是它需要知道的全部内容:

[TestFixture]
public sealed class SomeTestFixture: LicencedTestFixture 
{}