-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),以便我可以從它返回一個假的答案並將其傳遞給其他進程函數?
爲什麼不把你想測試的東西移動到可測試的方法? –