3

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

假设我有具有以下方法的 Person 类:

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

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

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

提前致谢

4

2 回答 2

3

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

伪代码:

setupException();
doSomething(a);
assertOutcome();
doSomething(a);
assertOutcome();
于 2014-10-10T11:44:26.883 回答
1

所以答案的第一部分是对 DAO 使用模拟。编写两个测试,其中一个方法被调用两次并且 DAO 没有抛出异常。DAO 在第一次调用它时抛出异常的另一个地方。

这两种情况下的预期行为取决于您的 DAO。是否可以调用deleteDAO 来获取已删除的值?如果是这样,那就太好了。期待两个电话。如果不是,那么您需要逻辑来检查状态。

于 2014-10-10T12:32:44.710 回答