我正在编写一个C ++类,它将一些操作作为FTP客户端执行。我想为它设置一些测试,所以我需要使用假的FTP服务器。
我一直在寻找一个,我想我可以用Python编写一些脚本并使用pyftpdlib。但我想在每次测试后设置和拆除服务器都会有一些缺点。
欢迎任何有关如何轻松运行假FTP服务器以便在C ++中自动测试的建议。
修改
我已经扩展了我的搜索并找到MockFtpServer,这正是我想要的,尽管是用C ++而不是Java编写的。
答案 0 :(得分:6)
您应该设计可测试性代码,在这种情况下,FTP服务器是外部资源。在程序和ftp服务器之间定义适配器。在测试中,您可以放置一个测试适配器来伪造FTP响应。现在你也可以伪造ftp服务器的不同行为。
答案 1 :(得分:1)
如果您正在谈论单元测试,那么@ peer的答案是正确的。您应该模拟FTP连接,因为理想情况下,您的单元测试作为每个构建的一部分运行,并且它们不应该依赖于客户端软件包之外的东西。
OTOH,如果您正在谈论系统/集成测试,那么您应该拥有支持的生产环境的工作克隆,包括FTP服务器。我不知道你为什么要为你的系统/集成测试想要一个'假的'FTP服务器。可能最好使用客户实际使用的FTP服务器。