我怎样才能自动使用mstest?

时间:2013-01-18 20:17:32

标签: tdd mstest extreme-programming

我真的很想使用visual studio 2012实现 测试驱动开发

我想使用http://tfs.visualstudio.com运行自动化单元测试,因为它们提供了一个构建服务器来运行我的测试。

当我上传我的代码时,所有测试都在查找我的数据库时失败。

测试自动化的最佳做法是什么?

我应该使用sql server compact还是真正的数据库?

1 个答案:

答案 0 :(得分:1)

我建议您查看存储库设计模式,以使您的测试独立于您的存储机制。这样,您就可以在没有实际数据库的情况下运行测试。

存储库设计模式允许在存储机制之间轻松切换。这样,当您的代码部署在生产环境中时,您将能够使用真正的数据库,并且您将能够使用模拟或内存存储进行测试。我鼓励您查看IoC框架,以便在不同的存储库之间轻松切换。 IoC(控制或依赖性反转的反转)是学习TDD时经常学习的一种技术,因为它使您的代码更容易测试。

这将带来许多好处:

  • 由于您不需要连接数据库

  • ,您的测试运行速度会更快
  • 它们将更容易维护,因为您不必担心模式,在测试之间拆除数据库,创建测试数据....

  • 存储库模式允许您在代码中应用一些关注点分离(请参阅单一责任原则),因为我现在假设您代码与Sql Server紧密耦合(因为没有数据库就无法运行测试)。

  • 您可以轻松更改存储机制。

TDD的内在目标是鼓励良好的代码设计。我建议您查看 SOLID原则以获取指南,并建议 F.I.R.S.T原则进行精心设计的单元测试。