我有一个带有依赖项 B
的类 A
。
我向 B::foo(String s1, String s2) 写入了一个 UT
。假设我测试 B::foo("a", "a")
假设A::foo(..)
调用B::foo(..)
我必须写一个A::("a", "a")
的UT吗?
我会注入(inject) B::foo 模拟并检查它是否被调用过一次,并且 A 的结果是否符合预期(给定 B 的模拟结果)。
在这种情况下你会避免模拟吗?
您会避免整个流程吗,因为它已经在 B
UT 中检查过?
最佳答案
单元测试是针对软件错误的额外防线。在生产代码中出现错误是有可能的,在生产代码和单元测试中出现相同错误的可能性要小得多。这是您编写单元测试的原因之一 - 以获得更多保证您的软件按预期工作。
I would inject B::foo mock and check it was called once and also the result from A is as expected given a mocked result from B.
你需要问问自己这样做你收获了多少。如果 A
是 B
- 这样的
A
测试有多大值(value)? - 检测
A
代码中的错误有多难? - 制作起来有多容易?
- 修复起来有多难?
每个单元测试都是要做出的决定。没有“是的,为此类编写测试”的指导方针或规则。您需要确定您的时间是否可以花在为包装类编写单元测试上,或者是否最好将其投入到其他地方。
关于java - 我需要仔细检查 UT 中的流量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122828/