📄 loginservlettest.java
字号:
package org.riawork.demo.web.servlet.test;
/*
* RIAWork.org
*
* OSGI Opendoc Demo
*/
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import org.easymock.MockControl;
import org.riawork.demo.service.user.Validator;
import org.riawork.demo.web.servlet.LoginServlet;
/**
* desc: 测试登录响应Servlet
*
* @author jerry
*/
public class LoginServletTest extends TestCase {
private StringBuffer resultBuf=new StringBuffer();
/**
* 测试登录成功时
*
* @throws Exception
*/
public void testDoPostWhenLoginSuccess() throws Exception{
resultBuf=new StringBuffer();
mockTest("jerry","bluedavy",true,false);
assertEquals(true,resultBuf.toString().indexOf("Login success")!=-1);
}
/**
* 测试登录失败时
*
* @throws Exception
*/
public void testDoPostWhenLoginFail() throws Exception{
resultBuf=new StringBuffer();
mockTest("jerry","",false,false);
assertEquals(true,resultBuf.toString().indexOf("Login Fail")!=-1);
}
/*
* Mock测试类的依赖
*/
private void mockTest(String username,String password,boolean loginResult,boolean loginError) throws Exception{
// Mock HTTP Begin
MockControl mc=MockControl.createControl(HttpServletRequest.class);
HttpServletRequest request=(HttpServletRequest)mc.getMock();
request.getParameter("username");
mc.setReturnValue(username);
request.getParameter("userpass");
mc.setReturnValue(password);
mc.replay();
MockControl responseMC=MockControl.createControl(HttpServletResponse.class);
HttpServletResponse response=(HttpServletResponse)responseMC.getMock();
response.getOutputStream();
responseMC.setReturnValue(new MockServletOutputStream());
response.setContentType("text/html");
responseMC.setVoidCallable(1);
responseMC.replay();
// Mock HTTP End
Validator validator=new MockValidatorService();
LoginServlet servlet=new LoginServlet();
servlet.setValidator(validator);
servlet.doPost(request, response);
}
class MockServletOutputStream extends ServletOutputStream{
public void write(int b) throws IOException {
}
public void println(String msg){
resultBuf.append(msg);
}
}
// Mock ValidatorService
class MockValidatorService implements Validator{
public boolean validate(String username, String password) throws Exception {
if(("jerry".equals(username))&&("bluedavy".equals(password)))
return true;
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -