我有一个项目,我正在尝试学习单元测试和TDD实践.我发现我正在花费很长时间来设计一个几乎在所有地方使用的实用程序类的嘲笑案例.
从我读过的关于单元测试的信息,如果我正在测试MyClass,我应该嘲笑任何其他功能(如由UtilityClass提供).是否可以接受(假设UtilityClass本身有一套全面的测试)来使用UtilityClass而不是为所有不同的测试用例设置mock?
编辑:我正在做很多设置之一.
我正在对地图进行建模,在不同的位置使用不同的对象.我的实用工具类的常见方法之一是GetDistanceBetween.我正在测试根据其各自属性对事物产生影响的方法,例如,选择一个点的5个单位内的所有对象和3岁以上的年龄的测试将需要进行几次测试(获取范围内的旧对象,忽略旧对象的范围,忽略范围内的年轻物体,正确与每种情况的倍数),所有这些测试需要设置“GetDistanceBetween”方法.通过使用GetDistanceBetween(几乎每一个)的方法和不同的结果,该方法应该在不同的情况下返回,并且它将被做很多设置.
我可以看到,当我进一步开发,可能会有更多的实用程序类调用,大量的对象和很多设置在这些模拟实用程序类.