如何在NUnit测试对象之间使用持久对象?

时间:2009-09-21 23:16:07

标签: c# .net nunit

我打算使用nUnit实现一些测试。我还有一个自行开发的指标记录库,我想用它来测试一些指标。所述度量库通常在应用程序中使用,通常使用如下:

// retrieve configuration.
string path = GetPath();
bool option = GetOption();

// Set up metrics recording object.
Metrics m = new Metrics(path, option);

Do.Something();
m.AddRecord(new Record()); // Record some metrics on what just happened

// later...

m.Finish();  // let it know we're done.

现在,我可以在每个对象中使用TestFixtureSetupTestFixtureTeardown创建此对象的实例(例如在父测试类中),但我更倾向于让此度量标准对象保持不变所有测试运行。是否可能,如果可能,有什么必要这样做?

2 个答案:

答案 0 :(得分:3)

您可以使用SetUpFixtureAttribute - “标记包含给定命名空间下所有测试装置的一次性设置或拆卸方法的类。”

答案 1 :(得分:1)

您可以将Metrics对象公开为单例,或者简单地将其公开为助手类的静态属性:

class TestHelper
{
    public static Metrics Metrics { get; private set; }

    static TestHelper
    {
        string path = GetPath();
        bool option = GetOption();
        Metrics = new Metrics(path, option);
    }

}

好吧,这不是一个非常好的模式,但对于单元测试它应该没问题......