【发布时间】:2019-05-13 23:38:26
【问题描述】:
我正在编写单元测试,但最让我困惑的部分是它是否应该测试功能?
例如,如果有一个方法可以做两件事
- 从文件夹中删除文件
- 返回文件夹是否为空
public bool DeleteFTPFiles(string xyz)
{
...
path = GetFTPPath(xyz);
DeleteFolderFiles(path);
return IsFtpFolderEmpty(path);
}
DeleteFolderFiles - 根据某些逻辑删除文件。
现在,如果我必须对此方法进行单元测试 (DeleteFTPFiles)。
我是否必须通过单元测试创建文件夹结构并添加一些文件作为排列测试?
根据条件判断文件是否被删除?
另外,根据是否为空来测试IsFtpFolderEmpty是否返回true或false?
如果是这样,这与集成测试有何不同?
【问题讨论】:
-
虽然基于意见,但该方法做了太多事情(违反 SRP),并且从事情的外观来看,与实现问题紧密相关,这会使孤立地测试它变得困难。您提到必须创建实际文件夹/文件的事实表明这也是一个集成测试。
标签: c# unit-testing testing automated-tests