-1
我有一个Java类MyClass的有重载方法的过程嘲笑一个重载的Java方法:如何使用斯波克
class MyClass {
private String process(String requestId, String request) {
// Initial processing, creates processObject from request
// then class actual processing:
String temp = process (processObject);
// do stuff I want to test, generate response
return response;
};
private String process(ProcessClass processObject) {
String result;
// do actual processing of processObject
return result;
}
}
我想测试使用斯波克第一process()方法。我试图用间谍模拟重载的进程(ProcessClass)。这里的testProcess.groovy至今:
class TestProcessUsingString extends Specification {
given:
def testInput = "TestInput"
def myObject = Spy(MyClass) {
process(_ as ProcessClass) >> "My result string"
}
when:
def response = myObject.process("TestInput")
// Check response
此方法不起作用嘲笑的方法处理(ProcessClass ...),因为我本来期望。我咨询了http://spockframework.org/spock/docs/1.0/interaction_based_testing.html,但我无法弄清楚。
我该如何嘲笑MyClass.process(ProcessClass),以便我可以从它返回一个假的答案并将其传递给其他进程函数?
为什么不把你想测试的东西移动到可测试的方法? –