功能测试
该测试的目标相当直观易懂:确保服务器能够对给定的请求发送正确的响应。然而,由于Web Services的复杂性,该任务原非想象的那么简单。对于大多数的Web Services而言,它不可能精确预见客户端会发来什么类型的请求。枚举所有可能的请求并不切实可行,因为可能输入的空间要么是没有边界,要么就是无穷大。因此,验证服务器是否能处理大范围的请求类型和参数是极其重要的。
public boolean execute(String action, String symbol, int quantity) throws javax.xml.soap.SOAPException{ Detail detail = null; detail = SOAPFactory.newInstance().createDetail(); detail.addChildElement( "Stock Trade" ).addTextNode( "failed" ); System.out.println("execute() in webservices.stock.trade webservice has been invoked with following arguments:: action:" + action + " symbol:" + symbol + " quantity:" + quantity); if(action == null) { throw new SOAPFaultException(new QName( "http://StockTrade/execute", "ServerFailed" ), "action parameter is null.", null, detail); } if(symbol == null) { throw new SOAPFaultException(new QName( "http://StockTrade/execute", "ServerFailed" ), "symbol parameter is null.", null, detail); } if(action.equalsIgnoreCase("BUY")) System.out.println("BUYING quantity: "+ quantity + " of symbol:" + symbol); // Invoke method to execute trade here. else if(action.equalsIgnoreCase("SELL")) System.out.println("SELLING quantity: "+ quantity + " of symbol:" + symbol); // Invoke method to execute trade here. else { System.out.println("INVALID action: "+ action); throw new SOAPFaultException(new QName( "http://StockTrade/execute", "ServerFailed" ), "Invalid Action:" + action, null, detail); } return true; }
(编辑:aniston)
|