TDD在实践中 - 您如何编写发送电子邮件的单元测试?

时间:2015-05-12 21:05:32

标签: unit-testing coding-style tdd

客户说他想要一个按钮,当按下时,采用下面的表格并将其作为电子邮件发送。你会如何对此进行单元测试?

假设你是:

  • 使用现有的SMTP库
  • 使用现有的IMAP库

根据我的理解,您可以使用UI模拟器单击按钮,然后等待一分钟左右,然后使用IMAP计算是否收到的消息比以前多一个。但这听起来几乎违反了几乎所有类别的TDD目标 - 它并不快,它不是原子的,它很复杂,它需要它自己的IMAP依赖。什么是" TDD"这样做的方法?

1 个答案:

答案 0 :(得分:1)

您想要测试您的计划的哪一部分?

请注意我在那里突出显示的内容 - 您要测试您的代码

除非你绝对需要,否则你不会对你的控制进行测试。所以,我想说,如果你使用SMTP / IMAP库 - 你相信他们做了他们应该做的事情,你就不会编写测试来验证,就像你不检查File.write()实际上写的那样提交等等。

回到你的问题,请查看创建和适配器/模拟器的电子邮件行为。在测试中使用内存中实现,并在生产代码中使用真实的

Eric Gunnerson撰写了关于他们的good post以及向github发表了kata