为什么我不应该使用静态导入Mockito方法?
我不知道为什么有人跟我说这个不用静态导入Mockito方法,而是写了 单元测试用例。他们说这样做可能会大大增加内存使用量并导致构建失败。为什么我不应该使用静态导入Mockito方法?
我想知道他们是对还是错。请解释它背后的原因。
请分享链接,想法或个人经验。 谢谢。
我在单元测试中长时间使用静态导入。从org.junit.Assert
和org.mockito.Mockito
静态导入。通过这样做,语法更简洁,我的测试更具可读性。
没有任何性能问题。这只是一个语法糖:
语法内的一种编程语言,旨在使事情更容易阅读或表达。 (wikipedia)
如果您导入两个具有相同名称的方法或常量,则可能会出现问题。 那么在这种情况下,你将不得不消除歧义。
但是,如果您使用两个具有相同名称的不同类(您将不得不使用合格的名称),则会出现同样的问题。
import java.awt.List
...
java.util.List dataList = new ArrayList();
List viewList = new List();
@Duncan你是对的。我添加一个链接到源。 – gontard 2014-09-25 09:18:52
哦,我误解了。我没有意识到你只是定义了语法糖,我以为你是从某处引用静态进口。 – 2014-09-25 09:20:02
我[看到有人抱怨(http://stackoverflow.com/questions/7322705/finding-import-static-statements-for-mockito-constructs)约和的Mockito的hamcrest静态导入冲突(即类似的方法名称)。但总体而言,我认为静态导入是Mockito的一个有用功能。你能否引用一些对静态进口产生警告的消息来源,还是与同事进行口头讨论? – 2014-09-24 07:23:44
是的,这些是口头讨论,每个人都开始关注它,这对我来说似乎不合逻辑,这就是我来到这里的原因。 您提供的链接似乎很合理,可能是造成我失败的原因。 +1 – 2014-09-24 07:29:01
您的IDE将帮助您避免构建失败;对静态进口没有必要害羞。但是,当然如果你的同事做出了风格决定,你可能只需要遵循它。不一致在代码库中没有帮助。 – 2014-09-24 07:30:59