Я хочу выполнить модульное тестирование моего контроллера, но у меня возникают проблемы с чтением значений из HttpContext.Session.
Я хочу высмеять этот фрагмент из моего контроллера: HttpContext.Session. Get(Foo)
С Mock HttpContext для модульного тестирования контроллера MVC ядра .NET? и
Как имитировать объект сеанса в ядре asp net. Мне удалось прийти к следующему решению:
Мой тест:
public void GetFoos_AllGood_ReturnList()
{
//Arrange
Mock sessionMock = new Mock();
var fooSessionValue = new byte[0];
Web.Controllers.FooController fooController = new Web.Controllers.FooController();
fooController.ControllerContext.HttpContext = new DefaultHttpContext();
fooController.ControllerContext.HttpContext.Request.Headers["Foo"] = 0;
Mock mock = new Mock();
mock.Object.AddSession(); // Tried this, but failed
//Setup
sessionMock.Setup(_ => _.Set("Foo", It.IsAny())).Callback((k, v) => fooSessionValue = v);
sessionMock.Setup(_ => _.TryGetValue("Foo", out fooSessionValue)).Returns(true);
mockWebDataManager.Setup(b => b.GetFoos(It.IsAny())).Returns(new FooResult() { Foos = new List() });
//Act
var result = fooController.GetFoos() as JsonResult;
//Assert
Assert.NotNull(result);
Assert.Equal(200, result.StatusCode);
}
Мой контроллер:
internal virtual DataArgs CreateArgs()
{
return new FooArgs
{
HttpContext.Session.Get(Foo) // I want to Mock this value
};
}
[HttpGet]
public IActionResult GetFoos()
{
FooArgs args = CreateArgs();
...
}
Подробнее здесь: https://stackoverflow.com/questions/542 ... g-isession
Контроллер модульного тестирования, имитирующий ISession ⇐ C#
Место общения программистов C#
-
Anonymous
1719248529
Anonymous
Я хочу выполнить модульное тестирование моего контроллера, но у меня возникают проблемы с чтением значений из HttpContext.Session.
Я хочу высмеять этот фрагмент из моего контроллера: HttpContext.Session. Get(Foo)
С Mock HttpContext для модульного тестирования контроллера MVC ядра .NET? и
Как имитировать объект сеанса в ядре asp net. Мне удалось прийти к следующему решению:
Мой тест:
public void GetFoos_AllGood_ReturnList()
{
//Arrange
Mock sessionMock = new Mock();
var fooSessionValue = new byte[0];
Web.Controllers.FooController fooController = new Web.Controllers.FooController();
fooController.ControllerContext.HttpContext = new DefaultHttpContext();
fooController.ControllerContext.HttpContext.Request.Headers["Foo"] = 0;
Mock mock = new Mock();
mock.Object.AddSession(); // Tried this, but failed
//Setup
sessionMock.Setup(_ => _.Set("Foo", It.IsAny())).Callback((k, v) => fooSessionValue = v);
sessionMock.Setup(_ => _.TryGetValue("Foo", out fooSessionValue)).Returns(true);
mockWebDataManager.Setup(b => b.GetFoos(It.IsAny())).Returns(new FooResult() { Foos = new List() });
//Act
var result = fooController.GetFoos() as JsonResult;
//Assert
Assert.NotNull(result);
Assert.Equal(200, result.StatusCode);
}
Мой контроллер:
internal virtual DataArgs CreateArgs()
{
return new FooArgs
{
HttpContext.Session.Get(Foo) // I want to Mock this value
};
}
[HttpGet]
public IActionResult GetFoos()
{
FooArgs args = CreateArgs();
...
}
Подробнее здесь: [url]https://stackoverflow.com/questions/54217245/unit-test-controller-mocking-isession[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия