2016-03-28 51 views
0

所以,我看过一个关于TDD的视频,主持人说,你应该只测试班级的部分内容,给外部世界什么东西。他提到这很好,因为这种方法确保班级保持“契约”,所以它交付了它的责任,但是你可以自由地重构它背后的逻辑。单元测试 - 定理

我在这里有点困惑家伙,因为我知道单元测试不应该依赖于外部世界。好吧,我明白这不是依赖项,但为什么不测试内部逻辑? 有什么想法?请随时添加为答案!

+0

我认为你要找的短语是[*黑盒测试*](https://en.wikipedia.org/wiki/Black-box_testing)。 –

+0

为什么你应该测试内部逻辑?如果用户期望f(a)返回b,为什么f(a)完成这项工作?内部功能默认是自动测试的。 –

回答

2

没错......你考什么是输出到“外面的世界”,而不是从外部世界输入

的想法是,你测试你的代码将输出正确的结果内部的步骤越多,你的单元测试时,无意实施改变甚至虽然最后的结果是完全正确的突破。你只希望单元测试在最终结果错误时抱怨。

2

所以基本上任何内部逻辑都必须通过一些可以从课堂外访问的方法暴露出来。这样你就可以测试你的内部逻辑,但是你不能直接访问它。