在java中有没有办法检查某个方法是否在另一个方法中被调用?我正在测试一个类和我遇到播放声音问题的方法,实际上没有办法获取播放的音频文件(内部类中的私有属性)而不更改代码.然而,该方法播放声音的方式是调用播放单个声音的方法(playSadMusic,playHappyMusic等).这些方法在我必须为其创建模拟对象的接口中.我有点坚持我将如何测试这个.有什么想法吗?关于我如何测试这个以外的任何其他想法,而不是检查某个方法是否被调用是受欢迎的.
我正在使用JMock 2.6.0和JUnit 4
音频接口
public interface StockTickerAudioInterface {
public abstract void playHappyMusic();
public abstract void playSadMusic();
public abstract void playErrorMusic();
}
Run Code Online (Sandbox Code Playgroud)
花药界面我必须创建一个模拟
public interface StockQuoteGeneratorInterface {
public abstract StockQuoteInterface getCurrentQuote() throws Exception;
public abstract String getSymbol();
public abstract void setSymbol(String symbol);
public abstract StockQuoteGeneratorInterface createNewInstance(String symbol);
}
Run Code Online (Sandbox Code Playgroud)
正在测试的课程
public class StockQuoteAnalyzer {
private StockTickerAudioInterface audioPlayer = null;
private String symbol;
private StockQuoteGeneratorInterface stockQuoteSource = null;
private StockQuoteInterface lastQuote = null;
private StockQuoteInterface currentQuote = null;
public StockQuoteAnalyzer(String symbol,
StockQuoteGeneratorInterface …Run Code Online (Sandbox Code Playgroud) 每次运行它时,我都会被要求从本地主机下载正在运行的servlet(CmdServlet),并将url更改为http:// localhost:8080/CommandWeb/CmdServlet?cmd = weather&loc = 12780913我是使用Tomcat6
CmdServlet
package controller;
import java.io.IOException;
import java.util.HashMap;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Command.Command;
import Command.WeatherCommand;
/**
* Servlet implementation class CmdServlet
*/
public class CmdServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private HashMap<String, Command> commands;
private String error = "error.jsp";
private String jspdir = "/";
public void init(ServletConfig config) throws ServletException {
super.init(config);
initCommands();
}
private void initCommands() {
commands = new HashMap<String, Command>();
commands.put("weather",new …Run Code Online (Sandbox Code Playgroud)