2010-03-01 2 views
0

nvelocity 라우팅 메커니즘을 요청 컨텍스트 (독립 실행 형 응용 프로그램 또는 테스트 프레임 워크)에서 시작하여 url에서 action 및 routing 값으로 URL을 가져올 수 있습니까? 여기 모노레일 URL을 라우팅 값으로 구문 분석

테스트입니다, 나는 routingMethod을 파악해야합니다 내가 제대로 이해하면

var url = routingMethod.ResolveAction<MyController>(c=>c.MyAction("Foo",1)) 
Assert.AreEqual("/MyController/MyAction.rails?name=Foo&amount=1"); 

var url = "/MyController/MyAction.rails?name=Foo&amount=1"; 

IDictionary routingValues = routingMethod.DeriveRouteValuesFrom(url); 

Assert.AreEqual("MyController", routingValues["controller"]); 
Assert.AreEqual("MyAction", routingValues["action"]); 
Assert.AreEqual("Foo", routingValues["name"]); 
Assert.AreEqual(1, routingValues["amount"]); 

답변

1

, 당신은, URL을 가지고 라우팅 엔진을 통해 두 가지를 실행하고 중 하나를 얻으려면 라우팅 매개 변수, 또는 라우팅 매개 변수에서 URL을 만드시겠습니까?

고유 한 RoutingEngine을 생성하고 경로를 등록한 다음 StubRequest를 사용하여 URL을 생성하거나 매개 변수로 URL을 구문 분석 할 수 있습니다.

(액세스 할 수있는 경우) RoutingModuleEx.Engine을 직접 사용할 수도 있습니다.

RoutingEngine에는 일치시키기와 URL 생성을위한 두 가지 방법이 있습니다.

RouteMatch를 테스트하기 위해 테스트 목적이나 다른 용도로 사용할 수있는 RouteMatch 클래스가 있지만 URL과 함께 URL을 생성 할 수 없습니다.