1

假设我有一个调用 m1() 和 m2() 的模板方法 template()。我有 m1 和 m2 的测试。现在,在测试 template() 时,应该使用模拟来检查 m1 和 m2 是否被正确调用或测试其 API 或两者兼而有之。

我觉得检查模板算法的测试(使用模拟)是低级的,几乎就像检查每一行源代码一样。

我想听听其他人对此有何看法。

4

1 回答 1

0

我喜欢执行两种类型的测试:隔离和集成。

我的隔离测试涉及通过模拟与其他类的所有交互来对类进行单元测试。使用类似Powermock的模拟框架,我可以模拟所有对象交互,并验证所有已定义(和未定义)的交互是否在每次测试期间发生。这些隔离测试是低级测试,可以为您提供团队期望的代码覆盖率指标。像Hudson这样的持续集成工具可用于自动化隔离单元测试的运行和指标收集。

集成测试涉及运行调用多个类的流。我喜欢构建自动化套件来测试快乐路径场景以及一些错误场景。但是,我不会构建和维护涉及应用程序中每一行代码的套件。这是一个基于成本和风险的决策。如果您可以使用像Fitnesse这样的工具自动化集成测试,您还可以将集成测试用作开发环境的冒烟测试,根据需要全天运行它,以确保您的应用程序和环境正常运行并正常运行.

我认为这是一个非常值得思考的话题。我认为这没有一个正确的答案,因为在决定您的测试方法时需要考虑很多因素。

于 2012-02-28T12:37:02.707 回答