可以使用Whitebox类中的静态实用程序方法吗?

时间:2013-11-14 16:25:33

标签: java mockito packages internal

我发现有些开发人员正在使用getInternalState()类中的某些方法(即setInternalState / Whitebox)。

我的问题是这是否是一种好习惯?我问这个是因为这个类在org.mockito.internal.util.reflection包中,并且内部包中的类通常不会被外界使用。

2 个答案:

答案 0 :(得分:0)

如果你看一下代码,那根本不是什么大问题。见这里:https://code.google.com/p/mockito/source/browse/src/org/mockito/internal/util/reflection/Whitebox.java?r=9772247b067621ed5c3cefc356397b0bde5b89f6

如果移动了,您可以完全替换测试代码,这需要2分钟。如果它会以某种方式从Mockito中删除(我认为这不太可能),那么你可以将类复制到你的代码中(~50行)。如果有任何变化,您的测试将被破坏,您将看到,您需要更改它们。没有真正的机会得到隐藏的问题。

因此,如果需要,我只需在测试代码中使用它。

答案 1 :(得分:0)

迟到的答案,但正如我刚刚遇到的那样:

我认为使用带有名称"内部"的任何东西都是糟糕练习。

对我而言,它会带来相当大的努力:我现在正在更新我们的巨大的项目设置,并发现很多人都使用了那个东西。

因此;我无法将我们的设置升级到理智的mockito 2.6.2;但我想我被迫使用powermock 1.66 / mockito 2.0.42;因为有些人认为"好的"使用内部类进行测试。