【发布时间】:2010-11-05 13:32:24
【问题描述】:
我有一个项目正在尝试学习单元测试和 TDD 实践。我发现我遇到了相当混乱的情况,我花了很长时间为几乎在任何地方都使用的实用程序类设置模拟。
根据我阅读的有关单元测试的内容,如果我正在测试 MyClass,我应该模拟任何其他功能(例如 UtilityClass 提供的功能)。只使用 UtilityClass 而不是为所有不同的测试用例设置 mock 是否可以接受(假设 UtilityClass 本身有一套全面的测试)?
编辑:我正在为此做很多设置的事情之一。 我正在建模一张地图,在不同的位置有不同的对象。我的实用程序类的常用方法之一是 GetDistanceBetween。我正在测试根据其各自属性对事物产生影响的方法,例如,选择一个点 5 个单位内的所有对象且年龄超过 3 岁的测试将需要多次测试(获取范围内的旧对象,忽略旧对象范围,忽略范围内的年轻对象,在每种情况的倍数下都能正常工作)并且所有这些测试都需要设置“GetDistanceBetween”方法。将其乘以使用 GetDistanceBetween 的每个方法(几乎每个方法)以及该方法在不同情况下应返回的不同结果,就需要进行大量设置。
我可以看到,随着我进一步开发,可能会有更多实用程序类调用、大量对象以及对这些模拟实用程序类的大量设置。
【问题讨论】:
标签: unit-testing tdd