单元测试旨在以自动方式测试各个代码段(通常是单个方法)。单元测试框架(如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);
这里的目的是测试不是单个方法,而是测试一系列改变某些常见状态的方法调用的结果。使用文件系统可能不是自动化测试的最佳示例,但这个概念很常见,易于理解。
以这种方式编写集成测试是否可以接受?这种方法有哪些优点和缺点?