Я использую ASP.NET MVC 3
и NUnit
.Я пытаюсь написать модуль для тестирования одного из моих вспомогательных методов.Вот оно:
public static class UrlHelperAssetExtensions
{
private static readonly string yuiBuildPath = "http://yui.yahooapis.com/2.8.2r1/build/";
public static string YuiResetFontsGridsStylesheet(this UrlHelper helper)
{
return helper.Content(yuiBuildPath + "reset-fonts-grids/reset-fonts-grids.css");
}
}
Вот мой модульный тест:
[Test]
public void YuiResetFontsGridsStylesheet_should_return_stylesheet()
{
// Arrange
RequestContext requestContext = new RequestContext();
UrlHelper urlHelper = new UrlHelper(requestContext);
// Act
string actual = urlHelper.YuiResetFontsGridsStylesheet();
// Assert
string expected = yuiBuildPath + "reset-fonts-grids/reset-fonts-grids.css";
Assert.AreEqual(expected, actual);
}
Правильно ли я тестирую его?Когда я запускаю его в графическом интерфейсе NUnit, я получаю следующую ошибку:
System.ArgumentNullException: значение не может быть нулевым.Имя параметра: httpContext
Возможно ли это проверить?Если да, объясните, пожалуйста, как я могу получить экземпляр httpContext?
ОБНОВЛЕНО
Я не могу пройти этот тест.В моем методе у меня есть следующее:
private static readonly string stylesheetPath = "~/Assets/Stylesheets/";
public static string Stylesheet(this UrlHelper helper)
{
return helper.Content(stylesheetPath + "MyStylesheet.css");
}
Тест, который я написал для него, следующий:
private string stylesheetPath = "/Assets/Stylesheets/";
private HttpContextBase httpContextBaseStub;
private RequestContext requestContext;
private UrlHelper urlHelper;
[SetUp]
public void SetUp()
{
httpContextBaseStub = MockRepository.GenerateStub<HttpContextBase>();
requestContext = new RequestContext(httpContextBaseStub, new RouteData());
urlHelper = new UrlHelper(requestContext);
}
[Test]
public void Stylesheet_should_return_stylesheet()
{
// Act
string actual = urlHelper.Stylesheet();
// Assert
string expected = stylesheetPath + "MyStylesheet.css";
Assert.AreEqual(expected, actual);
}
GUI NUnit выдает следующую ошибку:
System.NullReferenceException : Object reference not set to an instance of an object.
Кажется, появляется ошибка с ~ in:
private static readonly string stylesheetPath = "~/Assets/Stylesheets/";