Следует Карта - Данные не в 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>()));

и если вы используете какую-то другую среду для проверки, проверьте документацию о синтаксисе, которая позволит вам указать ограничение параметра, которое может быть любым.

Другие вопросы по тегам