【发布时间】:2012-04-11 08:21:28
【问题描述】:
我正在为我的应用程序开发实时更新。到目前为止,我已经创建了几乎所有的单元测试,但我不知道如何测试连接到 FTP 服务器并下载新版本的特定类。
要测试这个类,我应该创建一个 FTP 测试服务器并在我的单元测试中使用它吗?如果是这样,我如何确保这个 FTP 服务器始终与我的测试一致?我应该在测试开始之前手动创建我需要的每个文件,还是应该在我的测试类中自动创建(拆卸和设置方法)?
这个问题也适用于连接任何类型服务器的单元测试类。
编辑
我已经在模拟我的 ftp 类,所以在其他测试中我并不总是需要连接到 ftp 服务器。
让我看看我对 Warren 在评论中所说的话是否正确:
我认为,一旦您通过 TCP/IP 与单独的应用程序通信 我们应该称之为“集成测试”。一个不再测试一个 单位或方法,而是一个系统。
当单元测试需要与另一个应用程序(可以是 HTTP 服务器或 FTP 服务器)进行通信时,这是否不再是单元测试而是集成服务器?如果是这样,我是否通过尝试使用单元测试技术来创建此测试做错了?说我不应该对这个类进行单元测试是否正确?这对我来说确实有意义,因为单元测试似乎需要做很多工作。
【问题讨论】:
-
如果你能设法编写一个测试来确保类的功能,我会使用这个测试——无论是单元测试还是集成测试。总比没有测试好。
-
我的做法是将单元测试与集成测试分开。两者都从 dUnit 运行,但一种称为 AppUnitTests.exe,另一种称为 AppNetworkIntegrationTests.exe,仅包含网络/集成测试。如果我有一些需要很长时间的导入/导出/转换逻辑,我可能会制作另一个测试应用程序。当这些都被卡在 UnitTests.exe 中时,这会抑制单元测试并且不再有利于 TDD。
标签: delphi unit-testing ftp delphi-2010