【问题标题】:What are the necessary imports for unit testing with Mockito?使用 Mockito 进行单元测试的必要导入是什么?
【发布时间】:2012-10-31 16:44:00
【问题描述】:

我使用的是 Mockito 1.9.0 版。我环顾四周,发现大多数示例都忽略了导入列表,而其他示例则彼此非常不一致。对于某些注释,我收到“错误:找不到符号”。我可能将 junit 语法与 Mockito 语法混合在一起,但我不确定。

@RunWith(MockitoJUnitRunner.class)
public class SomeControllerTest {
  @Mock
  private SomeServiceImpl someService;

  @InjectMocks
  private SomeController someController;

  @Before 
  public void setUp() throws Exception {
  ...
  }

  @Test
  public void testSomething() throws SomeException {
  ...
  }
}

编辑

这是我目前正在导入的内容:

import org.mockito.*;
import org.mockito.runners.MockitoJUnitRunner;
import org.junit.runner.RunWith;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;

【问题讨论】:

    标签: java annotations mockito


    【解决方案1】:

    通常你可以接受:

    import static org.mockito.Mockito.*;
    

    使用今天的 IDE,它们提供自动完成功能,并且它们将查找上层类。比如Mockito类就是这样设计的,如果你尝试使用Mockito eq匹配器,IntelliJ会导入org.mockito.Matchers.eq

    与您可以使用 given 系列方法相同的方式,在存根时使用 BDD 样式而不是 when 系列方法,它将导入扩展 Mockito 类的 org.mockito.BDDMockito

    注解都在这里org.mockito

    import org.mockito.Captor;
    import org.mockito.InjectMocks;
    import org.mockito.Mock;
    

    由于某些关于代码组织的原因,可能会在其他地方找到其他内容,例如:

    import org.mockito.runners.MockitoJUnitRunner;
    

    编辑:在 Mockito 2.x 中,org.mockito.runners.MockitoJUnitRunner 已弃用,JUnit 相关代码已移至 org.mockito.junit,因此导入应替换为:

    import org.mockito.junit.MockitoJUnitRunner;
    

    对于新的MockitoRule 也是如此。

    import org.mockito.junit.MockitoRule;
    import org.mockito.junit.MockitoJunit;
    

    但找到它应该不是问题。

    希望有帮助!

    【讨论】:

    • 感谢您的建议。我仍然收到错误消息:具有@Before 的行的“找不到符号”。我会将我在导入部分中的内容添加到问题中。
    • 如果注释之前是问题,那么我相信您的 IDE 可能对来自 junit 的 @Before 有问题。正确的导入是大卫提到的那个。此外,我不是进口明星的忠实粉丝,它可能导致与具有相同名称的标识符发生冲突。您可能想确保您具有正确的 JUnit 依赖项,我已经看到将 JUnit 4 替换为 JUnit 3 的传递依赖项。
    • 我同意布莱斯的观点。我认为你必须检查你的依赖关系。 @Before 在junit jar 中。您使用哪个 IDE 以及哪个依赖管理系统(即 Maven)?当我使用 IntelliJ 时,我可以毫无问题地找到源示例的导入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多