繁体   English   中英

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

[英]How do I use a persistent object between NUnit test objects?

我打算使用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创建该对象的实例,但是我宁愿让此指标对象在所有运行的测试中都保持不变。 是否可以,如果可以,那么有什么必要?

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

您可以将Metrics对象公开为单例,也可以简单地公开为帮助程序类的静态属性:

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

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

}

好的,这不是一个很好的模式,但是对于单元测试来说应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM