【发布时间】:2017-05-13 23:48:26
【问题描述】:
我必须测试一个依赖于数据库类的类UserAdmin。我模拟了数据库类来测试UserAdmin 类。数据库类有一个方法isAdmin(),它决定用户是否是管理员。 UserAdmin 类有一个名为 removeUser() 的方法,我收到此错误。如果用户是管理员,removeUser() 方法不允许删除用户
以下是我看到此错误的代码。
@Test
//testing remove user method of UserAdmin - remove Admin
public void testremoveUserAdmin() throws SQLException{
new Expectations() {{
dBConnection.isAdmin("admin");
times=1;
result = true;
}};
assertEquals(false,userAdmin.removeUser("admin"));
当我输入上面的assertEquals() 时,它给出了一个缺少的调用错误,但是当我在断言中将 false 替换为 true 时,它说预期为 true,但它为 false。我不确定为什么会出现此错误。针对类似方法(如isAdmin())运行的类似代码运行良好。请帮忙
【问题讨论】:
-
如何声明“dBConnection”字段?使用
@Mocked或@Injectable?如果是第二个,那么这个相同的模拟实例必须是在UserAdmin#removeUser方法中使用的那个。 -
我用过@Mocked DBConnection dBConnection;
-
当我输入上述 assertequals 时,它给出了一个缺少的调用错误,但是当我在断言中将 false 替换为 true 时,它说预期为 true,但它为 false。
标签: java unit-testing junit dependencies jmockit