使用场景:对于调用其它类中的方法,但是还没有编写完,使用easymock进行单元测试,它提供这些没有编写完的代码期待的默认值。

使用步骤

step1:

pom引入:

 1         <dependency>
 2             <groupId>org.easymock</groupId>       
 3             <artifactId>easymock</artifactId>
 4             <version>3.2</version>
 5         </dependency>
 6         <dependency>
 7             <groupId>org.easymock</groupId>
 8             <artifactId>easymockclassextension</artifactId>
 9             <version>3.2</version>
10         </dependency>
11         <dependency>
12             <groupId>org.easymock</groupId>
13             <artifactId>com.springsource.easymockclassextension</artifactId>
14             <version>3.2</version>
15         </dependency>

 

2、使用easymock中的方法编写单元测试

第一,创建mocks的类

需要注意的是:一般使用EasyMock.createMock创建mock对象,但是一些对象需要set一些值,这时候我们可以使用EasyMock.createNiceMock

第二,开始录制

第三,mock回放

需要注意的是:只能回放用mock创建的对象,比如new出来的对象就不能回放;

第四,使用

测试单元:

 1     /**
 2      * 使用easymock测试GetTotalAmount
 3      * @throws ParseException
 4      */
 5     @Test
 6     public void testGetTotalAmount() throws ParseException {
 7         Reconciliation reconciliation = EasyMock
 8                 .createMock(Reconciliation.class);
 9         Date endTime = new Date();
10         Date startTime = new Date();
11 
12         Calendar calendar = Calendar.getInstance();
13         calendar.setTime(endTime);
14         calendar.add(Calendar.DATE, -1);
15         startTime = calendar.getTime();
16         EasyMock.expect(reconciliation.getReconciliationStartTime())
17                 .andReturn(startTime);
18         // TODO 1
19         EasyMock.expectLastCall().anyTimes();
20         EasyMock.expect(reconciliation.getReconciliationEndTime())
21                 .andReturn(endTime);
22         EasyMock.expectLastCall().anyTimes();
23         // TODO 2
24         reconciliation.setReconciliationStartTime(
25                 sdf.parse(reconciliationStartTimeFormat.format(startTime)));
26         EasyMock.expectLastCall().anyTimes();
27         reconciliation.setReconciliationEndTime(
28                 sdf.parse(reconciliationEndTimeFormat.format(endTime)));
29         EasyMock.expectLastCall().anyTimes();
30         reconciliation.setStatus((byte) 1);
31         EasyMock.replay(reconciliation);
32         QueryParameters queryParameters = new QueryParameters();
33         queryParameters.setPage(1);
34         queryParameters.setRows(PAGESIZE);
35         ModelMap model = EasyMock.createMock(ModelMap.class);
36         // TODO 3
37         model.clear();
38       
39         EasyMock.expect(model.addAttribute("totalAmount", new Double(0)))
40                 .andReturn(model);
41         EasyMock.expectLastCall().anyTimes();
42 
43         EasyMock.expect(model.addAttribute("total", new Integer(0)))
44                 .andReturn(model);
45         EasyMock.expectLastCall().anyTimes();
46         EasyMock.replay(model);
47         reconciliationController.getTotalAmount(reconciliation, queryParameters,
48                 model);
49     }
50     /**
51      * 测试GetTotalAmount
52      * @throws ParseException
53      */
54     @Test
55     public void testGetTotalAmount1() throws ParseException {
56         Reconciliation reconciliation = new Reconciliation();
57         Date endTime = new Date();
58         Date startTime = new Date();
59 
60         Calendar calendar = Calendar.getInstance();
61         calendar.setTime(endTime);
62         calendar.add(Calendar.DATE, -1);
63         startTime = calendar.getTime();
64         reconciliation.setReconciliationStartTime(startTime);
65         reconciliation.setReconciliationEndTime(endTime);
66         reconciliation.setStatus((byte) 1);
67         QueryParameters queryParameters = new QueryParameters();
68         queryParameters.setPage(1);
69         queryParameters.setRows(PAGESIZE);
70         ModelMap model = new ModelMap();
71         reconciliationController.getTotalAmount(reconciliation, queryParameters,
72                 model);
73     }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
  • 2021-10-05
  • 2021-07-17
  • 2021-11-24
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2022-02-24
  • 2021-11-09
  • 2022-12-23
相关资源
相似解决方案