我是TDD的新手,这是我第一次测试一个现实世界的项目。首先,我想测试驱动FTP客户端,所以我做了。由于FTP客户端自然地处理网络I/O,所以在我看来,单元测试没有用,因为单元测试不应该包括任何I/O操作,而只包括内存中的操作1。
然而,在集成测试和功能测试方面出现了混乱。我应该把我的FTP客户端测试套件放在哪里?集成测试可以适应I/O操作1,但FTP客户端只是一个模块,所以我应该对其进行功能测试吗?
发布于 2016-11-04 19:18:58
也许我没有正确理解您的问题,但在您的情况下,我将创建两个测试套件,一个用于集成测试,一个用于功能测试。
在这种情况下,我可以为我想要公开的FTP命令编写特定的集成测试,并使用我正在构建的客户机的API。例如,用于发送文件的测试,用于删除、重命名等的测试。
我会编写功能测试,以验证一些更复杂的用例,这些用例可以包括其他技术部分,例如excel电子表格中列出的大量文件上传(在这种情况下,我也可以对"Excel读取“部分进行集成测试)
通过集成测试,您可以获得对代码模块的信任,这些模块必须管理一些您无法控制/拥有的东西:当然,I/O是主要的示例。
发布于 2016-11-04 20:26:16
集成测试是广泛的刷子,可以涵盖范围广泛的“测试”。就个人而言,基于上述,我将集成测试整个模块,因为这是一项离散的工作。如果您想测试如何使用该模块,则需要进行系统(或功能)测试。
所有这些的关键是确定您想要测试的级别以及应用程序最适合的级别。
也许,在FTP模块上进行一套体面的集成测试就足以证明该模块如预期的那样工作。
https://stackoverflow.com/questions/40416450
复制相似问题