Пытаюсь протестировать контроллер ASP.NET MVC с помощью подделки, но получаю ошибкуC#

Место общения программистов C#
Ответить
Anonymous
 Пытаюсь протестировать контроллер ASP.NET MVC с помощью подделки, но получаю ошибку

Сообщение Anonymous »

Вот мой файл CustomWebApplicationFactory, в котором я переопределяю попытку подключения IUserService.

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

public class CustomWebApplicationFactory : WebApplicationFactory
{
public IUserService _userService;

public CustomWebApplicationFactory()
{
_userService = A.Fake();
}

protected override void ConfigureWebHost(IWebHostBuilder builder)
{
base.ConfigureWebHost(builder);

builder.ConfigureTestServices(services =>
{
services.AddSingleton(_userService);
});
}
}
Вот мой интеграционный тест. Ошибка появляется в A.Callto() ниже.

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

A.CallTo(() => _factory._userService.GetAllItems().Returns(Task.FromResult(fakepersons)));
и появляется сообщение об ошибке:

Ошибка CS1929

'Task' не содержит определения для «Returns», а лучшая перегрузка метода расширения «ReturnValueConfigurationExtensions.Returns(IReturnValueConfiguration, Task)» требует приемника типа «FakeItEasy.Configuration. IReturnValueConfiguration'

WebIntegrationTest.Test C:\Users\srees\ReactJS App\WebIntegrationTest. Test\ControllerTest\HomeControllerIntegrationTests.cs 34 Активен

Код:

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

public class HomeControllerIntegrationTests : IDisposable
{
private CustomWebApplicationFactory _factory;
private HttpClient _client;

public HomeControllerIntegrationTests()
{
_factory = new CustomWebApplicationFactory();
_client = _factory.CreateClient();
}

[Fact]
public async Task GetAllItems_ReturnOkResult_WithListOFItems()
{
var fakepersons = new List
{
new Person{Id=1, Firstname="Test1", Lastname="Test1", Email="Test1"},
new Person { Id = 2, Firstname = "Test2", Lastname = "Test2", Email = "Test2" }
};

A.CallTo(() => _factory._userService.GetAllItems().Returns(Task.FromResult(fakepersons)));

var response = await _client.GetAsync("/api/Home");

Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}

public void Dispose()
{
_client.Dispose();
_factory.Dispose();
}
}
Я новичок в тестировании, поэтому не знаю, как к этому подойти.


Подробнее здесь: https://stackoverflow.com/questions/785 ... g-an-error
Ответить

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

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

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

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

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