单元测试旨在以自动化方式测试单个代码(通常是单个方法)。NUnit 或 MSTest 等单元测试框架旨在支持这些类型的测试。
但是,没有什么可以阻止您按顺序调用多个方法(更改每个方法的某些状态)并验证结果。这将是一个集成测试。示例伪代码:
var f = new Folder("C:\\");
var f2 = f.CreateSubfolder("test");
Assert.Exists(f2.Path)
var file = f2.CreateFile("abc.txt");
Assert.Exists(file.Path)
f2.Delete();
Assert.NotExists(f2);
这里的目的不是测试单个方法,而是测试改变某些公共状态的一系列方法调用的结果。使用文件系统可能不是自动化测试的最佳示例,但这个概念很常见,很容易理解。
以这种方式编写集成测试是否可以接受?这种方法的优点和缺点是什么?