使用Mockito进行单元测试的必要进口是什么?

时间:2012-10-31 16:44:00

标签: java annotations mockito

我正在使用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.*;

1 个答案:

答案 0 :(得分: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;

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

但找到它应该不是问题。

希望有所帮助!