Следует Карта - Данные не в URL?
Я пытаюсь провести модульное тестирование своих маршрутов и начинаю сталкиваться с проблемой. Некоторые параметры метода действия больше не будут поступать из URL, но вместо этого будут предоставлены фильтром действия, основанным на этой статье: http://haacked.com/archive/2010/02/21/manipulating-action-method-parameters.aspx
Проблема в том, что у меня есть URL: /some/path/id
который отображается на метод действия public ViewResult Action(int id, Guid sessionId)
где sessionId
добавляется в параметры действия фильтром действия. Теперь я вижу способ пройти этот тест, не делая Guid
Guid?
:
"~/some/path/1".ShouldMapTo<SomeController>(x => x.Action(1, <anyGuid>));
Есть идеи?
1 ответ
Теперь я не вижу способа пройти этот тест, не превратив Guid в Guid?
Ну на самом деле есть способ.
Если вы используете Rhino Mocks (который по умолчанию связан с MvcContrib.TestHelper
так что вы уже неявно используете его):
"~/home/action/1"
.ShouldMapTo<SomeController>(x => x.Action(1, Arg<Guid>.Matches(y => true)));
и если вы используете Moq:
"~/some/action/1"
.ShouldMapTo<SomeController>(x => x.Action(1, It.IsAny<Guid>()));
и если вы используете какую-то другую среду для проверки, проверьте документацию о синтаксисе, которая позволит вам указать ограничение параметра, которое может быть любым.