【发布时间】:2016-05-19 10:56:19
【问题描述】:
我知道我们通常说单元测试应该是完全独立的,不依赖于外部系统或数据——这些称为集成测试。
但是……
我想编写一个模拟,它提供某种方法的结果,该方法本质上返回大量 JSON/XML 数据(作为字符串)。在这种情况下,我是否可以将数据合法地存储在属于我的单元测试项目的文本文件中,或者严格来说这仍然是一个集成测试?
【问题讨论】:
标签: unit-testing mocking mstest rhino-mocks
我知道我们通常说单元测试应该是完全独立的,不依赖于外部系统或数据——这些称为集成测试。
但是……
我想编写一个模拟,它提供某种方法的结果,该方法本质上返回大量 JSON/XML 数据(作为字符串)。在这种情况下,我是否可以将数据合法地存储在属于我的单元测试项目的文本文件中,或者严格来说这仍然是一个集成测试?
【问题讨论】:
标签: unit-testing mocking mstest rhino-mocks
是的,你可以将它存储在一个文本文件中,它仍然是一个单元测试。 (不过,我建议最好将文本放在测试代码本身中,除非您已经将它放在文件中,或者文本真的很大。)
unit 测试与 integration 测试的区别不在于它是否涉及文件系统和/或其他外部资源。重要的区别在于单元测试是否仅旨在验证单个单元的行为/状态,或多个相互依赖的单元。在后一种情况下,您有一个集成测试。
因此,单元测试可以运行它所依赖的其他单元或系统的代码。但它应该假设那些其他单元只是按预期工作,而不验证它们的行为。单元测试的另一种方法是通过模拟或伪造将测试单元与依赖项隔离开来。两种方法都有效。
【讨论】: