自动化测试的最佳实践方法

时间:2009-11-16 15:30:51

标签: unit-testing entity-framework automated-tests

这是一个非常奇怪的建议请求,我真的觉得没有真正的答案。在我的项目中,我在逻辑计算中使用的各种对象上存档例程,我为了审计跟踪而存档这些项目,并检查计算错误或在稍后阶段证明纠正性。我正在使用Entity Framework,事情与您自己的项目略有不同。

我使用原始对象,直接修改它,创建修改项目的克隆,从存储中恢复原始项目并相应地保存更改。如果对象从未被计算消耗,则不会将对象恢复为原始对象,在这些实例中,我直接保存在该对象上以及与其他对象存在的各种关系。

这可能听起来很长,但我向你保证 - 就我在EF情况下与EF的运作而言,这似乎是最简单的。

我对这些归档程序的麻烦是,随着时间的推移我会引入更多功能 - 我有时会在不知情的情况下将关键代码打破到我必须从头到尾对整个解决方案进行回归测试的程度,以确保归档要求保持不变。

是否有任何单元测试方法或自动化方法来测试这些类型的要求。它将加速部署减少我自己的手动测试的软件包。

任何有关模拟情境的建议或链接都​​会受到赞赏。

3 个答案:

答案 0 :(得分:3)

我认为你所描述的这个问题有两个部分:

  1. 首先,您需要构建一些可以代表系统技术要求的单元测试。将单元测试视为您在技术上实现最终用户所需目标的规则。通过这种方式,我会制作单元测试,如果您对系统的技术假设因代码更改而失败,您可能会有信心打破。请记住将单元测试保持在单元级别,这样就不会有大量的依赖项交互而无法通过测试。单元测试应该测试一件事。如果你这样做,当你进行代码更改时,你可以运行所有的单元测试,并立即知道你对系统做出的假设现在没有得到满足。

  2. 我还会设置一些自动化的集成功能测试。我认为在您的问题域中设置与单元测试类似的集成测试是有意义的(您可以使用相同的工具。)在这里,您将需要采用更大的功能,也许管道数据流经系统和测试在数据上发生正确的一系列转换。

答案 1 :(得分:3)

最佳做法是确保测试可以按任何顺序运行。您可以通过在归档路由中使用“gold”数据将生产例程与归档例程分开。

答案 2 :(得分:1)

单元测试的最佳实践就是这样做!除此之外,我还想推荐Gerard Meszaros的xUnit Test Patterns: Refactoring Test Code