1、 首先導入easymock.jar包。
2、 LoginServlet.java servlet類
1
package com.test.mock;
2
3
import java.io.IOException;
4
5
import javax.servlet.RequestDispatcher;
6
import javax.servlet.ServletContext;
7
import javax.servlet.ServletException;
8
import javax.servlet.http.HttpServlet;
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletResponse;
11
12
public class LoginServlet extends HttpServlet {
13
/**
14
*
15
*/
16
private static final long serialVersionUID = 7020197334019200211L;
17
18
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
19
String username = request.getParameter("username");
20
String password = request.getParameter("password");
21
// check username & password:
22
if("admin".equals(username) && "123456".equals(password)) {
23
ServletContext context = getServletContext();
24
RequestDispatcher dispatcher = context.getNamedDispatcher("dispatcher");
25
dispatcher.forward(request, response);
26
}
27
else {
28
throw new RuntimeException("Login failed.");
29
}
30
}
31
32
33
}
34

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

3、LoginServletTest.java
1
package com.test.mock;
2
3
import javax.servlet.http.*;
4
import org.easymock.*;
5
import junit.framework.TestCase;
6
public class LoginServletTest extends TestCase {
7
public void testLoginFailed() throws Exception {
8
MockControl mc = MockControl.createControl(HttpServletRequest.class);
9
HttpServletRequest request = (HttpServletRequest)mc.getMock();
10
request.getParameter("username");
11
mc.setReturnValue("admin", 1);
12
request.getParameter("password");
13
mc.setReturnValue("1234", 1);
14
15
mc.replay();
16
LoginServlet servlet = new LoginServlet();
17
try {
18
servlet.doPost(request, null);
19
fail("Not caught exception!"); }
20
catch(RuntimeException re) {
21
assertEquals("Login failed.", re.getMessage());
22
}
23
mc.verify();
24
}
25
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

測試結果:

-------------------------------------------------------------------------------------------------
PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者和文章的詳細出處地址,否則不允許轉載,多謝合作!