本文是針對(duì) 之前的
通過Spring2.5對(duì)單元測(cè)試的Annotation支持進(jìn)行TDD開發(fā) 進(jìn)行擴(kuò)展,增加了Struts Action層的測(cè)試實(shí)現(xiàn)。
Action的測(cè)試代碼編寫如下:以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 }
針對(duì)該Action編寫的測(cè)試代碼如下:
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 }
實(shí)現(xiàn)比較簡(jiǎn)單,只需要注意以下兩點(diǎn):
1. 測(cè)試類必須繼承
AnnotationStrutsSpringTest. 該代碼在附件中
2. 通地getProxyAction來構(gòu)建Action類實(shí)例
這樣雖然Action沒有注入到Spring容器,也可以通過 getProxyAction方法,實(shí)現(xiàn)Spring容器的屬性依賴注入實(shí)現(xiàn)。
源碼下載: 下載
Good Luck!
Yours Matthew!