Создание ложного ссылающегося домена URL в ASP.NET MVC для Поблочного тестирования

Я в настоящее время тестирую свое приложение и застреваю при попытке выяснить, как создать пользовательский поддельный ссылающийся домен URL. Я попытался трудно кодировать его, но получаю ошибку, что это только для чтения. Вот то, что я попробовал до сих пор:

fakeController.HttpContext.Request.UrlReferrer.AbsolutePath = "http://www.yahoo.com";

а также,

fakeController.Request.UrlReferrer = "http://www.yahoo.com";

Я искал сеть некоторые идеи о том, как создать поддельный/ложный ссылающийся домен URL для моего поддельного контроллера, но не имел никакой удачи. Любые предложения приветствуются.

Примечание: Я использую Visual Studio встроенные средства поблочного тестирования.

ОБНОВЛЕНИЕ:

Спасибо всем за Ваши предложения до сих пор, я был бы более, чем готов использовать любую другую систему поблочного тестирования за пределами Visual Studio, к сожалению, здесь на моей работе, нам только разрешают использовать встроенную систему Visual Studio, таким образом, я должен работать с тем, что я имею. Спасибо, хотя, хорошо знать, что эти опции там.

6
задан kingrichard2005 10 February 2010 в 18:18
поделиться

3 ответа

Я рекомендую перейти на Mock Framework, например NMock или Rhino Mock, который позволяет создавать их и возвращает конкретное значение для данного вызова, например get в этом свойстве.

1
ответ дан 8 December 2019 в 18:35
поделиться

Создайте имитацию запроса для HttpContext, затем установите ожидание на запрос, который возвращает Uri. Пример с использованием RhinoMocks.

 var context = MockRepository.GenerateMock<HttpContextBase>();
 var request = MockRepository.GenerateMock<HttpRequestBase>();
 request.Expect( r => r.UrlReferrer ).Returns( new Uri( "http://www.yahoo.com" ) ).Repeat.AtLeastOnce();
 context.Expect( c => c.Request ).Returns( request ).Repeat.Any();

 fakeController.HttpContext = context;
8
ответ дан 8 December 2019 в 18:35
поделиться

Для этого, к сожалению, вам понадобится создать целый фиктивный HttpContext. Вместо того, чтобы жестко кодировать это, я настоятельно рекомендую использовать макеты, так как это позволит вам избежать настройки частей объекта, которые вам на самом деле не нужны.

Я бы посоветовал ознакомиться с сообщением Скотта Хансельмана MvcMockHelpers , чтобы получить некоторое представление о том, что здесь задействовано (он включает код как для Rhino, так и для Moq).

1
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: