나는 JUnit 테스트를 실행 중이다.Struts2 TDD - 테스트 체인 - 운영자가 체인을 수행하는 것을 방지하는 방법?
우리는 테스트 중에 작업이 작동하도록하지만 새로운 작업으로 연결될 때 - 새로운 (연쇄 된) 작업이 올바르게 설정되지 않았고 내부 코드가 설정되지 않는 모든 내부 테스트 프레임 워크 (StrutsTestCase에서 상속)를 보유합니다. NULL로 실행됩니다.
테스트는 동작 호출의 올바른 결과 만 테스트해야하며 이 아니고은 연결 작업을 테스트해야한다고 생각합니다.
내 질문 : 테스트하는 동안 연결을 해제하는 방법을 찾고 있습니다. StrutsTestCase.setUp()에서 생성 된 Dispatcher를 체인 다르게 처리하도록 구성 할 수 있습니까 (예 : 아무 작업도 수행하지 않음)?
위시 나는 연쇄를 피할 수는 있지만 그것이 여기에서 완료되는 방식입니다. 작업 : -
편집이 여기에 코드입니다
@Action(value = SUBMIT, results = {
@Result(name = SUCCESS, type = "chain", params = { "actionName", "myActionName", "namespace", "/myNameSpace" }) })
public String submitForm() throws IllegalAccessException, InvocationTargetException, IOException {
return SUCCESS;
}
테스트 :
@Test
public void testStuff() throws Exception {
setupAction();
prepareForValidUser();
this.actionUnderTest.getModel().setUpSomeStuff(someSetupValue);
final String result = this.proxy.execute();
assertEquals("Result not the expected result", SUCCESS, result);
}
테스트는 좋은 테스트 프레임 워크에 크게 의존; proxy.execute()는 액션 (com.opensymphony.xwork2.ActionProxy.class)을 실행합니다.
액션 호출의 결과 만 테스트하려면 체인뿐만 아니라 어떤 결과도 실행하지 않도록 테스트를 설정해야합니다. 그리고 네, 당신이하고있는 일과 당신이 무엇을하고 있는지를 아는 경우에만 사슬을 사용하십시오. –
어떤 종류의 사용 사례를 코딩하는지 알려주지 않습니다. 문제와 관련된 코드를 게시하십시오. –
@AleksandrM 예 동의합니다. 그러나 설정하는 방법을 모르기 때문에 어떤 결과도 실행되지 않습니다. – Skychan