繁体   English   中英

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

[英]How can I test idempotency of a method with junit?

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

让我们说我有类Person有以下方法:

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

我需要在删除之前测试出错的地方,下次调用方法doSomething时,它会在第一次正确运行时创建相同的结果。 例如,当您运行调用该方法的脚本但是例如通过停止脚本失败时,可能会发生这种情况。 当您在下一次运行脚本时,它应该在没有失败的情况下提供相同的结果。

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

提前致谢

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

伪代码:

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

所以答案的第一部分是使用模拟DAO。 编写两个测试,一个调用方法两次,DAO不抛出异常。 另一个DAO在第一次调用时抛出异常的地方。

这两种情况的预期行为取决于您的DAO。 是否可以在DAO上调用已delete的值的删除? 如果是这样,很好。 期待两个电话。 如果没有,那么你需要逻辑来检查状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM