使用网络 I/O 测试驱动 FTP 客户端,这属于集成测试还是功能测试?
Test driving an FTP client with network I/O, does this fall under integration testing or functional testing?
我是 TDD 的新手,这是我第一次试驾真实世界的项目。首先,我想试驾一个 FTP 客户端,所以我做了。由于 FTP 客户端自然地处理网络 I/O,在我看来,对它进行单元测试是没有用的,因为单元测试不应该包括任何 I/O 操作,而应该只包括内存操作 [1 ].
但是,混淆出现在集成测试和功能测试中。我应该在哪里放置我的 FTP 客户端测试套件?集成测试可以容纳 I/O 操作 [1] 但是 FTP 客户端只是一个模块,所以我应该把它放在功能测试下吗?
[1]
也许我没有正确理解你的问题,但在你的情况下我会创建两个测试套件,一个用于集成测试,一个用于功能测试。
在这种情况下,我可以为 FTP 命令编写特定的集成测试,我想用我正在构建的客户端的 API 公开这些命令。例如。一个测试发送文件,一个测试删除,重命名等...
我会编写功能测试以验证一些更复杂的用例,这些用例可能包括其他技术部分,例如批量上传 excel 电子表格中列出的文件(在这种情况下,也许我还可以对 "Excel reading" 部分进行集成测试)
通过集成测试,您对必须管理您不管理的内容的代码模块充满信心control/own:I/O当然是主要示例。
集成测试刷的很广,可以涵盖的范围很广'testing'。
就个人而言,基于以上,我会将模块作为一个整体进行集成测试,因为这是一项独立的工作。如果您随后想测试模块的使用方式,则进行系统(或功能)测试。
所有这一切的关键是确定您要测试的级别以及最适合应用程序的级别。
也许 FTP 模块上的一套像样的集成测试足以证明该模块按预期工作。
我是 TDD 的新手,这是我第一次试驾真实世界的项目。首先,我想试驾一个 FTP 客户端,所以我做了。由于 FTP 客户端自然地处理网络 I/O,在我看来,对它进行单元测试是没有用的,因为单元测试不应该包括任何 I/O 操作,而应该只包括内存操作 [1 ].
但是,混淆出现在集成测试和功能测试中。我应该在哪里放置我的 FTP 客户端测试套件?集成测试可以容纳 I/O 操作 [1] 但是 FTP 客户端只是一个模块,所以我应该把它放在功能测试下吗?
[1]
也许我没有正确理解你的问题,但在你的情况下我会创建两个测试套件,一个用于集成测试,一个用于功能测试。
在这种情况下,我可以为 FTP 命令编写特定的集成测试,我想用我正在构建的客户端的 API 公开这些命令。例如。一个测试发送文件,一个测试删除,重命名等...
我会编写功能测试以验证一些更复杂的用例,这些用例可能包括其他技术部分,例如批量上传 excel 电子表格中列出的文件(在这种情况下,也许我还可以对 "Excel reading" 部分进行集成测试)
通过集成测试,您对必须管理您不管理的内容的代码模块充满信心control/own:I/O当然是主要示例。
集成测试刷的很广,可以涵盖的范围很广'testing'。 就个人而言,基于以上,我会将模块作为一个整体进行集成测试,因为这是一项独立的工作。如果您随后想测试模块的使用方式,则进行系统(或功能)测试。
所有这一切的关键是确定您要测试的级别以及最适合应用程序的级别。
也许 FTP 模块上的一套像样的集成测试足以证明该模块按预期工作。