问题描述
我对Mockito还是陌生的,并且我正在使用Mockito测试正在调用另一个方法的方法,并且该方法返回字符串.我尝试过,但无法编写测试.请帮助
I am new to mockito and I am using mockito to test method which is calling another method and called method returns string.I tried but I am unable write test. Please help
public class MyClass {
protected String processIncominData(String input) {
String request = ...;
...
String response = forwardRequest(request);
...
return response;
}
public String forwardRequest(String requestToSocket) {
String hostname = socketServerName;
int port = socketServerPort;
String responseLine=null;
Socket clientSocket = null;
PrintStream outs=null;
BufferedReader is = null;
BufferedWriter bwriter=null;
try {
clientSocket = new Socket(hostname, port);
outs=new PrintStream(clientSocket.getOutputStream());
is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
bwriter = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
} catch (UnknownHostException e) {
LOGGER.error("Don't know about host: " + hostname + e.getMessage());
} catch (IOException e) {
LOGGER.error("Couldn't get I/O for the connection to: " + hostname + e.getMessage());
}
if (clientSocket == null || outs == null || is == null) {
LOGGER.error("Something is wrong. One variable is null.");
}
try {
while ( true ) {
StringBuilder sb = new StringBuilder();
sb.append(requestToSocket);
String request = sb.toString().trim();
bwriter.write(request);
bwriter.write("\r\n");
bwriter.flush();
responseLine = is.readLine();
LOGGER.info("Socket returns : " + responseLine);
//outs.println(responseLine);
bwriter.close();
}
} catch (UnknownHostException e) {
LOGGER.error("Trying to connect to unknown host: "+ e.getMessage());
} catch (IOException e) {
LOGGER.error("IOException: "+ e.getMessage());
}
finally{
try {
outs.close();
is.close();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return responseLine;
}
}
我想在此处模拟xml响应以测试processIncomingData方法.此响应来自套接字服务器,我正在通过套接字客户端发送请求.我认为如果可以从套接字模拟xmlResponse,套接字就没有关系.请给出任何有用的答案
I want to mock xml response here to test processIncomingData method..This response is coming from socket server and I am sending request by socket client. I think socket will not matter if I can mock xmlResponse from socket. Please give any helpful answer
推荐答案
现在您已经发布了它,如何模拟它的答案就在这里.
Now that you have posted it, the answer to how to mock it is here.
这篇关于Mockito:如何模拟另一个方法内部调用的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!