3

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

1 回答 1

0

通常你可以接受:

import static org.mockito.Mockito.*;

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

以同样的方式,您可以使用given家族方法,在存根而不是when家族方法时使用 BDD 样式,它将导入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;

但找到它应该不是问题。

希望有帮助!

于 2012-10-31T18:11:19.860 回答