Как провести тест на единицу getRouteValue в маршрутизации в httpcontext?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как провести тест на единицу getRouteValue в маршрутизации в httpcontext?

Сообщение Anonymous »

У меня есть следующий метод, который будет протестирован на единицу < /p>

Код: Выделить всё

public string GetSubjectFromRoute(string routeKey)
{
return httpContextAccessor.HttpContext!.GetRouteValue(routeKey)!.ToString()!;
}
< /code>
Вот как я написал свой тест, < /p>
[Fact]
public void GetSubjectFromRoute_Should_Return_Route_Value()
{
// Arrange
var expectedSubject = "route-subject-123";
var routeKey = "subject";
var mockHttpContextAccessor = new Mock();

// Set up routing feature with route data
var data = new RouteValueDictionary()
{
{ routeKey, expectedSubject }
};

var routeData = new RouteData(data);

var routingFeature = new RoutingFeature()
{
RouteData = routeData
};
var features = new FeatureCollection();
features.Set(routingFeature);
var httpContext = new DefaultHttpContext(features);

mockHttpContextAccessor.Setup(x => x.HttpContext).Returns(httpContext);
var userContext = new UserContext(mockHttpContextAccessor.Object);

// Act
var result = userContext.GetSubjectFromRoute(routeKey);

// Assert
Assert.Equal(expectedSubject, result);
}
< /code>
, когда я запускаю тест, я продолжаю получать NullReferenceException < /code>. < /p>

Исключение произошло: clr /system.nullreexexexcept Object. '

 
Я проверил исходный код фреймворта и настройка iroutingfeature 
с необходимыми деталями, но по -прежнему получила ошибку. Какая -нибудь подсказка о том, что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ttpcontext
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»