如何布置我的集成测试

时间:2010-10-13 13:10:49

标签: c# sql-server-2005 unit-testing nunit integration-testing

我在C#/ NUnit中开发了一组相当大的集成测试。目前它是一个测试夹具,一个类。在[TestFixtureSetUp]中,我从脚本创建一个数据库,并用脚本填充测试数据。我的测试不会修改数据,因此它们可以按任何顺序或并行运行。

我的问题是我有太多的测试而且文件越来越大,所以它看起来很难看,而且我的ReSharper变得迟钝了。我想分割文件,但我真的只想创建我的测试数据库一次。作为临时措施,我将实际测试的代码移动到其他类中的静态方法中,并从单个TextFixture类调用它们,如下所示:

[Test]
public void YetAnotherIntegrationTest()
{
    IntegrationTestsPart5.YetAnotherIntegrationTest(connection);
}

然而它仍然看起来很丑陋,我认为应该有更好的方法。

我正在使用VS 2008,现在升级到2010,以及SQL Server 2005。

3 个答案:

答案 0 :(得分:3)

您可以将测试类拆分为多个文件中的多个部分类。通过这种方式,您可以保留一个[TestFixtureSetup]并将文件拆分以保持清洁。

答案 1 :(得分:2)

您可以考虑在sigleton类中包装数据库连接,这将在创建单例实例时初始化数据库。然后你可以拥有任意数量的测试类,只需从单例中获取数据库连接。

答案 2 :(得分:1)

我正在创建包含Setup方法的基类。然后,您只需继承它,就不必在任何测试类中调用任何设置数据库。