当我使用他们最新的 2.0.3 Beta jar 中的 Mockito 时,我得到 class 未找到 org.objenesis.ObjenesisStd class 的异常

When I use Mockito from their latest 2.0.3 Beta jar I get a class not found exception for org.objenesis.ObjenesisStd class

我在 Tomcat 上有一个普通的基于 Web 的 servlet 运行,我正在尝试测试它。

我刚刚从他们的 github 存储库中克隆了 Mockito 并构建了它并获得了 mockito-core-2.0.3-beta.jar。

我将这个 jar 添加到我的项目中,当我使用它时如下所示

@RunWith(MockitoJUnitRunner.class)
public class DailyEmailSenderTest {

private ArrayList<MailVO> mails;

@Mock
private SqlDatabaseAccess db;
@BeforeClass
public static void setUpBeforeClass() throws Exception {

}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testGetMailsListFromDB() {
    fail("Not yet implemented");
}
}

我收到 class 未找到异常

java.lang.NoClassDefFoundError: org/objenesis/ObjenesisStd
Caused by: java.lang.ClassNotFoundException: org.objenesis.ObjenesisStd
at java.net.URLClassLoader.run(URLClassLoader.java:366)

您需要的不仅仅是 mockito-core jar。如果你在 maven central 查看 pom,它显示了对 hamcrest-core 1.1 和这个的依赖:

<dependency>
  <groupId>org.objenesis</groupId>
  <artifactId>objenesis</artifactId>
  <version>2.1</version>
  <scope>runtime</scope>
</dependency>

如果您也将这些 jar 添加到您的类路径中,应该会很好。