当两种方法不同时,返回输入的不同输出

时间:2013-08-07 07:29:45

标签: junit mockito powermock

我有课

class CommandRunner {
  String output;

  public int run(String command) {
    //runs command and sets output         
    return errCode;
  }

  public String getOutput() {
    return output;
  }
}

以上CommandRunner正在我的班级中进行测试

CommandRunner runner;
runner.run("some command");
out = runner.getOutput();
//operates on out

runner.run("some command");
out = runner.getOutput();
//operates on out

runner.run("some command");
out = runner.getOutput();
//operates on out

如何根据run()方法的输入模拟CommandRunner返回不同的输出?我使用Power Mock和Mockito。

1 个答案:

答案 0 :(得分:1)

你可以使用Mockito Answer执行此操作,这是在调用mock上的方法时运行的一大块代码。您可以编写一个Answer来检查传递给该方法的参数,并在每种情况下返回不同的内容。查看http://docs.mockito.googlecode.com/hg/latest/org/mockito/stubbing/Answer.html了解如何执行此操作。