【问题标题】:Why should not I use static import of Mockito methods?为什么我不应该使用 Mockito 方法的静态导入?
【发布时间】:2014-09-24 07:17:03
【问题描述】:

我不知道为什么我身边的人在写作时不使用静态导入 Mockito 方法 单元测试用例。 他们说这样做可能会显着增加内存使用并导致构建失败。

我想知道他们是对是错。并请解释其背后的原因。

请分享链接、想法或个人经历。 谢谢。

【问题讨论】:

  • 我已经 seen some people complain 关于来自 Mockito 的静态导入和 hamcrest 冲突(即类似的方法名称)。但总的来说,我认为静态导入是 Mockito 的一个有用功能。您能否引用一些警告静态导入的消息来源或者这些是与同事的口头讨论?
  • 是的,这些都是口头讨论,每个人都开始关注它,这对我来说似乎不合逻辑,这就是我在这里的原因。您提供的链接似乎合乎逻辑,可能是我构建失败的原因。 +1
  • 您的 IDE 将帮助您避免构建失败;无需对静态导入感到害羞。但当然,如果您的同事做出了风格决定,您可能只需要接受它。不一致对代码库没有帮助。

标签: maven junit build out-of-memory mockito


【解决方案1】:

我在单元测试中使用了很长时间的静态导入。从org.junit.Assertorg.mockito.Mockito 静态导入。通过这样做,语法更简洁,我的测试更具可读性。

没有任何性能问题。这只是一个语法糖:

旨在使事物更易于阅读或表达的编程语言中的语法。 (wikipedia)

如果您要导入两个同名的方法或常量,您可能会遇到问题。 那么在这种情况下,您将不得不消除歧义。

但是,如果您使用两个具有相同名称的不同类(您必须使用限定名称),则会出现同样的问题。

import java.awt.List

...
java.util.List dataList = new ArrayList();
List viewList = new List();

【讨论】:

  • 哦,我误会了。我没有意识到你只是在定义语法糖,我以为你在引用从某个地方的静态导入。
猜你喜欢
  • 2016-02-15
  • 1970-01-01
  • 2016-12-23
  • 2015-10-15
  • 1970-01-01
  • 2011-02-17
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多