我有一个使用Spring构建的Web应用程序,其中包含一些作业。
典型的工作是运行数据库,获取修改后的客户列表,生成文件并对其进行FTP。我的问题是,如何在这项工作中进行单元测试?
我是否应该只为作业的每个“步骤”编写单元测试,例如:
但在这种情况下,我会错过上述工作的“集成”测试用例。另外,Emma报告说,工作形式中存在未经测试的代码。
任何想法都赞赏。
谢谢!
答案 0 :(得分:0)
您必须为每个步骤编写单元测试。也许你需要嘲笑一些方法。
然后,您可以编写一个集成测试来验证整体,但也许您需要存根某些部分(例如FTP服务器,在测试中使用嵌入式FTP服务器)。
答案 1 :(得分:0)
单元测试实际上一次只测试一个类。这意味着你必须模拟依赖项。春天很棒。
我会建议Mockito做嘲笑。这是一个了不起的工具,你将学习TDD,这也是一种编写漂亮代码的方法。
集成测试是另一个主题,需要另一种策略。
通过扩展AbstractTransactionalJUnit4SpringContextTests来对数据库进行测试。你会在网上找到例子。通常,您还使用内存db来进行这些测试(h2对此有利)。它可以在单元测试阶段完成。
生成文件可以作为单元测试完成。您生成文件并验证正确的内容。或错误......
对于FTP部分,我会说它更像是集成测试的一部分,除非您可以从构建脚本中生成FTP服务器。