Struts2的Unit Test說容易也是真的不麻煩,但如果希望測試得仔細些又要頗費力氣,還好在2.1.8時將一直沒有Commit到release repository的StrutsSpringTestCase放了出來,使Unit Test又更加方便。 下列寫個簡單例子:
public class FirstActionTest extends StrutsSpringTestCase{ public void testAction() throws Exception { ActionProxy actionProxy = this.getActionProxy ( "first!index.action"); Assert.assertNotNull(actionProxy); FirstAction action = (FirstAction) actionProxy.getAction(); Assert.assertNotNull(action); String result = actionProxy.execute(); Assert.assertEquals(FirstAction.SUCCESS , result); } }
ActionProxy actionProxy = this.getActionProxy("first!index.action"); FirstAction action = (FirstAction) actionProxy.getAction(); String result = actionProxy.execute();this.getActionProxy()內帶入你實際在跑的uri,取得Action後再設定你要測的property,最後再run actionProxy.execute();就可以做成一個簡單的測試,如果需要改變Spring configuration xml的位置,請override protected String getContextLocations(); 另外有兩點要注意,如果你使用wildcard如first_*來控制action的execution methed,請在測試時用!來分隔wildcard,trace了一段時間,還沒找出問題在哪...另一個是actionProxy.execute()會有找不到jsp的實際檔案的情形,但不影響測試,這部份應該是放到integration test就能解決。
沒有留言:
張貼留言