本文是針對 之前的
通過Spring2.5對單元測試的Annotation支持進行TDD開發 進行擴展,增加了Struts Action層的測試實現。
Action的測試代碼編寫如下:以WalMartAction為例
1 public class WalMartAction {
2
3 private SuperStore superStore;
4
5 @Override
6 public String toString() {
7 return new ToStringBuilder(this).append("superStore", superStore)
8 .toString();
9 }
10
11 /**
12 * @param superStore the superStore to set
13 */
14 public void setSuperStore(SuperStore superStore) {
15 this.superStore = superStore;
16 }
17
18 public String list() {
19 Collection<Commodity> commodities = superStore.getCommodities();
20 System.out.println(commodities);
21
22 return "SUCCESS";
23 }
24
25 }
針對該Action編寫的測試代碼如下:
1 @RunWith(SpringJUnit4ClassRunner.class)
2 @ContextConfiguration(locations = {"classpath:/applicationContext-test.xml"})
3 @TestExecutionListeners({DependencyInjectionTestExecutionListener.class})
4 public class WalMartActionTest extends AnnotationStrutsSpringTest {
5
6 private WalMartAction testAction;
7
8 @Before
9 public void setUp() {
10 testAction = getProxyAction(WalMartAction.class);
11 Assert.assertNotNull("TestAction should not null", testAction);
12 }
13
14 @After
15 public void tearDown() {
16 testAction = null;
17 }
18
19 @Test
20 public void executeTestActionList() {
21 System.out.println(testAction.list());
22
23 }
24
25 }
實現比較簡單,只需要注意以下兩點:
1. 測試類必須繼承
AnnotationStrutsSpringTest. 該代碼在附件中
2. 通地getProxyAction來構建Action類實例
這樣雖然Action沒有注入到Spring容器,也可以通過 getProxyAction方法,實現Spring容器的屬性依賴注入實現。
源碼下載: 下載
Good Luck!
Yours Matthew!