使用Mockito进行单元测试需要什么导入?

问题描述 投票:2回答:1

我正在使用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个回答
0
投票

通常您对:]感到满意

import static org.mockito.Mockito.*;

使用当今的IDE,它们提供自动补全功能,并且将查找上层类。例如,Mockito类是按这种方式设计的,如果您尝试使用Mockito eq匹配器,则IntelliJ将导入org.mockito.Matchers.eq

[以相同的方式可以在存根时使用given族方法或使用BDD样式,而不是when族方法,它将导入org.mockito.BDDMockito从而扩展了Mockito类。

注释都在org.mockito

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

由于某种原因,与代码组织有关,可能在其他地方找到其他东西,例如:

import org.mockito.runners.MockitoJUnitRunner;

EDIT

:在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;

但是找到它应该不是问题。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.