你把什么称为创造从模拟中返回的对象?

时间:2013-07-30 16:18:35

标签: unit-testing testing mocking tdd

是否有一个术语用于创建仅在单元测试中从模拟方法返回的对象?

为断言而创建的对象是 expected 。 你实际得到的是实际。 你输入的东西是输入

你所谓的对象是什么,只是在你选择的模拟框架中传递给.andReturn(someObject)个调用?如果这些对象没有命名约定,我发现它使得数据密集型测试更难理解。

3 个答案:

答案 0 :(得分:1)

我把它们称为“罐头答案”,但这不仅限于对象,它们可以是原始类型。

答案 1 :(得分:0)

我认为'模拟对象'或'假'是你要求的?

答案 2 :(得分:0)

Gerard Meszaros的书“xUnit测试模式:重构测试代码”,指的是专门用于单元测试的对象,一般称为“测试双打”。他确定了几种常用的不同类型的双打:

  • 测试存根
    • 返回预期结果,和/或调用预期方法。用于强制生产代码沿着所需的路径。
  • 测试间谍
    • 观察调用代码,记录调用后续验证的内容。返回强制生产代码沿所需路径下移的值。
  • 测试模拟
    • 初始化时会有一系列预期会以某种方式调用它,然后观察所做的调用并在发生故障时抛出异常。返回强制生产代码沿所需路径下移的值。
  • 假物体
    • 真实对象的简单版本。主要用途是代表尚未构建的依赖组件。通常用于替换数据库或服务。
  • 虚拟物体
    • 非常简单的对象,它满足对测试不重要的方法签名要求。空对象或空字符串是常见的假人。

在您的情况下,这些将被视为虚拟对象。它们只是由你的逻辑返回,但它们的内容对测试来说并不重要。