public class SupportController{
public void disableUserAccount(String username) throws Exception {
UserAccount userAccount =
new UserAccount(Constants.SYSTEM, Constants.CONTAINER, username);
UserAccount.disableAccount();
}
}
我如何测试创建的useraccount是否被禁用?
答案 0 :(得分:1)
我建议使用Mock Objects。
除此之外,您还可以查看JUnit FAQ,在那里可以找到有关返回void
的测试方法的部分。
通常,如果方法不返回值,则会有一些方面 影响。实际上,如果它没有返回值并且没有一方 效果,它没有做任何事情。
可能有一种方法可以验证副作用是否实际发生了 预期
答案 1 :(得分:1)
有三种基本解决方案:
PowerMock
并不总能与其他参赛者一起比赛(例如SpringJUnit4TestRunner)。我通常会因为这个原因而避免使用它,并且它会修改已编译的代码。
可覆盖的工厂方法是另一种选择。为此,您必须扩展类并覆盖工厂方法。这意味着测试是针对被测试类的实例运行的,该实例实际上不是被测试的类,而是可测试的子类。这对我来说有味道,所以我倾向于尽可能避免它。
工厂类方法是我首选的解决方案。传入默认的Factory类创建UserAccount
。在您的测试中提供了一个模拟(我使用Mockito
)版本的工厂。