单元测试依赖于数据库的Window服务

KMo*_*raz 2 database wcf nunit unit-testing

我们在.NET 3.5\C#和WCF中有一组服务.NUnit测试需要运行服务并侦听请求.这些服务需要更新的SQL数据库才能进行连接.

目前,单元测试的[SetUp]部分执行两项任务:

  • 执行最新的SQL脚本来构建数据库.
  • 利用System.Diagnostics.Process.Start运行服务的命令行模式.

它通常有效,但服务对某些架构更改很敏感,有时会失败.我正在寻找设置数据库和服务的最佳实践,并确保服务最终失效.

该过程由MSBuild运行.

Jus*_*ner 5

如果您正在启动服务,并且正在执行实际的执行服务...更改您不仅仅是单元测试了.您现在正在进行集成测试.

您应该考虑将数据访问抽象为接口.然后,您可以编写该接口的具体实现以进行正常操作,并使用依赖注入为单元测试注入模拟实现.