저는 MVC (2 일만에 처음)에 익숙 합니다만, RedirectToAction으로 연결된 컨트롤러 호출 체인 전체에 대한 테스트를 작성하는 방법이 있습니까? 즉, 각각의 호출을 수동으로 코딩하지 않고 차례로 전체 호출 시퀀스를 테스트한다.RedirectToAction에 의해 링크 된 전체 컨트롤러 호출 체인을 테스트하려면 어떻게합니까?
의 라인을 따라 egsomething : 그래서
MyTestMethod()
{
var myController = new MyController(someparam1);
ActionResult action = myController.DoSomething();
RedirectToAction ar = action as RedirectToAction;
// loop while the ActionResult is an RedirectToAction
while (ar!=null)
{
// automatically make direct call to next redirect method in
// chain, is something like this possible?
action = ar.NextMethodToCall(ar.NextMethodToCallParam1, ar.NextMethodToCallParam2);
ar = action as RedirectToAction;
}
}
은 명확하게하기 위해,이 오히려 단위 (단일 컨트롤러 방법은 올바른 actionresult을 반환 만 테스트 것) 테스트,하지만 아닙니다 전체 리다이렉트 체인의 테스트.
주 - 테스트 방법 일 뿐이므로 MVC 앱은 호출 될 때 실행되지 않습니다. IIS는 테스트 컴퓨터에도 설치되지 않습니다.
나는 그 답을 이해하지 못한다. 아마도 내 질문은 분명하지 않을 수 있습니다. NextMethodToCall()은 실제로 명명 된 메서드로 존재하지 않지만 코드는 RedirectToAction 속성을 검토하여 RedirectToAction 객체를 사용하여 "nextmethodtocall"을 동적으로 결정합니다. 질문의 핵심은 - 호출 할 다음 메소드를 동적으로 결정하고 런타임에 ActionResult/RedirectToAction 객체를 사용하여 해당 메소드의 매개 변수를 채우는 방법은 무엇입니까? 테스트를 수용하기 위해 코드를 변경하고 싶지 않으므로 실제 출시 코드의 변경은 배제해야합니다. – jimasp
@jimasp, ActionResult (또는 RedirectToRouteResult)를 서브 클래스 화하고 사용자 정의 로직을 추가 할 수 있습니다. – smartcaveman
조금만 더 읽고 나면, 다른 접근법이 필요하다는 것을 깨달았습니다. – jimasp