【发布时间】:2011-06-08 06:46:48
【问题描述】:
我有一个连接其他三个服务的类,专门设计用于使其他服务的实现更加模块化,但我的大部分单元测试逻辑都在模拟验证中。有没有办法重新设计来避免这种情况?
Python 示例:
class Input(object): pass
class Output(object): pass
class Finder(object): pass
class Correlator(object): pass
def __init__(self, input, output, finder):
pass
def run():
finder.find(input.GetRows())
output.print(finder)
然后我必须模拟输入、输出和查找器。即使我确实做了另一个抽象并从 Correlator.run() 返回了一些东西,它仍然需要作为模拟进行测试。
【问题讨论】:
-
您的问题到底是什么?我有最多需要八个依赖项的类...如果您的设计是正确的并且您认为您的抽象是一致的,我不会更改您的代码。
-
我认为困扰我的事情是该类的唯一目的是集成,因此最好的测试方法是集成测试。随着架构的成熟,我总是首先争取独立的单元测试,然后是集成测试。我想我只好放过这个了。
标签: python unit-testing language-agnostic tdd