假设我要测试功能calculateHealth(person)
。假设该函数采用person
模型参数,并根据person
的运行状况返回0%到100%之间的数字。可以说person
模型的创建成本很高,因为它具有许多属性,并且子模型也具有许多属性。我觉得我应该嘲笑这个人,并用一个行为足够简单来测试我的calculateHealth()
函数的人来代替它。但是根据专家的观点(Justin Searls –请不要嘲笑我-https://www.youtube.com/watch?v=Af4M8GMoxi4,在28:14),如果我们嘲笑模型值出来(对他来说,只能模拟依赖项,而不能模拟模型值)
如果我有更多类似的测试,如果我的person
模型发生更改,则维护它们的成本很高。您对此有何看法?
答案 0 :(得分:0)
由于person
的模拟很复杂,因此对calculateHealth()
的测试非常困难。这是设计气味,而不是测试问题。与其传递黑匣子person
,不如我应该更清楚地定义接口,并且最好是易于使用和模拟/测试。