【问题标题】:TDD In practice -- How do you write a unit test for sending an email?TDD 在实践中——你如何编写发送电子邮件的单元测试?
【发布时间】:2015-05-12 21:05:31
【问题描述】:

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

假设你是:

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

据我了解,您可以使用 UI 模拟程序单击按钮,然后等待一分钟左右,然后使用 IMAP 计算收到的消息是否比以前多。但这听起来几乎在每个类别中都违反了 TDD 目标——它不快,它不是原子的,它很复杂,它需要它自己的 IMAP 依赖项。执行此操作的“TDD”方式是什么?

【问题讨论】:

    标签: unit-testing coding-style tdd


    【解决方案1】:

    您想测试您的程序的哪一部分?

    请注意我在此处突出显示的内容 - 您想测试您的代码

    除非绝对需要,否则您不会测试您无法控制的事情。所以,我想说,如果你使用 SMTP/IMAP 库——你相信它们会做它们应该做的事情,你不需要编写测试来验证这一点,就像你不检查 File.write() 实际写入文件一样等。

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

    Eric Gunnerson 写了一篇关于他们的 good post 并在 github 上发布了 kata

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-12
      • 2011-01-05
      • 2014-11-04
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多