模拟业务对象的情况

时间:2011-01-01 19:55:35

标签: language-agnostic testing mocking

我试图看到模拟业务层的好处。在测试时,您正在验证业务逻辑,因此您需要模拟数据层。

那么模拟业务层有什么好处呢?

2 个答案:

答案 0 :(得分:1)

我假设“嘲笑”你的意思是任何一种替身。当我听到模拟时我会想到期望(例如mock.should_recieve:do_something),但是你提到的“嘲弄”数据听起来像是一个存根(即返回固定值)。

有一个spectrum of philosophy from“假装一切”只有“如果你真的真的需要假装”。一直使用双打的一个理由是加速测试(这可能是一个不好的论点 - 见this amazing presentation)并隔离失败。

在您提到的情况下 - 编码数据层 - 除上述内容之外的一些好处可能是:

  • 您尚未编写业务层,因此您可以使用双打来编写数据层(您可以根据您所在的阵营取代真实对象
  • 你使用模拟来设计合作者之间的对话(Liz Keogh有some excellent stuff explaining this

HTH, 肖恩

答案 1 :(得分:0)

如果要对表示层中的某些代码进行单元测试,则可能需要模拟业务层。您模拟了您在该测试中测试的代码部分。