是否有可能绕过mockito
中的某些异常?听起来很疯狂。您想在我假设的单元测试中捕获预期的异常。但是,我决定尝试提出这个问题。这是我的情况,希望我可以借此改善对mockito
和一般unit test
校长的理解。
我必须使用Foo
单元测试框架为企业Web应用程序中的特定类mockito
构建一个简单的单元测试。
这个Foo
类需要ldap
和database
连接,但是由于某种原因,我不能在单元中使用特定于开发环境的ldap
和database
测试。
我只需要测试访问ldap
的零件,以便决定使用unboundid in memory ldap
,它允许在运行时创建轻量目录,并在测试完成后将其从内存中删除。
我的问题是在通过Foo
注释实例化@InjectedMocks
类的过程中,它触发了调用许多其他类及其方法的链式反应。它引发了许多我所期望的例外。
我正试图找到一种方法,以某种方式忽略某些特定的异常,例如加载/读取环境特定的属性文件或数据库访问等。
出于我的目标,我不需要读取道具文件或数据库访问权限。
我读过ExpectedException
,如果我没记错的话,junit提供了mockito
的子集,但是我认为它的目的与我绕过某些异常的意图不符。我对此可能是错的。
我要做的就是:
Foo
类In memory ldap
读取组列表这是测试课程的简化版本:
@RunWith(MockitoJUnitRunner.class)
public class FooTest {
private static InMemoryDirectoryServer ldapServer;
private static Integer ldapPort = xxxxx;
@InjectedMocks
Foo footester = Foo.getInstance();
@BeforeClass
public static void setUpBeforeClass() {
try {
// execute instantiate in memory ldap..
} catch (Exception e) {
// do print out
}
}
@Test
public void testLdap() {
// before it reaches here exceptions were thrown
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
// do tear down execution
}
}
答案 0 :(得分:0)
您可以捕获这样的异常:
@Test(expected = YourExceptionHere.class)
public void testSomething()
{
foo(FOO_VALUE);
}