如何用junit测试一个方法的幂等性



我必须测试一个方法的幂等性。

假设我有类Person,方法如下:

    public String doSomething(String a){ 
//do some stuff
personDao.delete(a)
}

在删除之前,我需要测试一下当出现问题时,下次你调用doSomething方法时,它会在第一次应该正确运行时创建与你想要的结果相同的结果。例如,当您运行一个调用该方法但失败的脚本(例如,停止脚本)时,可能会发生这种情况。当您在下一次运行脚本时,它应该会给出相同的结果而不会失败。

你能在单元测试中做到这一点吗?

提前感谢

测试应该运行该方法两次。两种情况下的结果应相同。就这么简单。

伪码:

setupException();
doSomething(a);
assertOutcome();
doSomething(a);
assertOutcome();

因此,答案的第一部分是对DAO使用mock。编写两个测试,其中一个方法被调用两次,DAO不会抛出异常。另一个地方,DAO在第一次调用它时抛出异常

这两种情况下的预期行为取决于您的DAO。对于已经删除的值,可以在DAO上调用delete吗?如果是的话,那就太好了。预计会有两个电话。如果没有,那么您需要逻辑来检查状态。

相关内容

  • 没有找到相关文章

最新更新