我知道我们通常认为单元测试应该是完全自包含的,不依赖于外部系统或数据 - 这些被称为集成测试。
但是...
我想编写一个mock,它提供某种方法的结果,该方法本质上返回了大量的JSON / XML数据(作为字符串)。在这种情况下,我可以合法地将数据存储在我的单元测试项目的文本文件中,还是严格来说仍然是集成测试?
答案 0 :(得分:0)
是的,您可以将其存储在文本文件中,它仍然是一个单元测试。 (虽然,最好,我建议将文本放在测试代码中,除非你已经将它放在一个文件中,或者文本真的大。)< / p>
单元测试与集成测试的区别在于它是否接触文件系统和/或其他外部资源。重要的区别在于单元测试是否仅旨在验证多个相互依赖单元的单个单元或的行为/状态。在后一种情况下,您进行了集成测试。
因此,单元测试可以从其依赖的其他单元或系统运行代码。但它应该假设那些其他单位只是按预期工作,而没有验证他们的行为。单元测试的另一种方法是通过模拟或伪造将测试单元与依赖关系隔离开来。这两种方法都是有效的。