Как устранить непоследовательный параметр доступности при тестировании интеграции ASP .NET?C#

Место общения программистов C#
Ответить
Anonymous
 Как устранить непоследовательный параметр доступности при тестировании интеграции ASP .NET?

Сообщение Anonymous »

Я пытаюсь провести чистые интеграционные тесты для ASP .NET WebApi.
Это фабричный класс веб-приложения.
Программный класс, который он использует в расширении, является внутренним из проекта API. (Выполнено с помощью InternalsVisibleTo )

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

internal class DozerWebApplicationFactory : WebApplicationFactory
{
//Omitted not useful
}
В тестах я могу сделать это:

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

public class QuotesControllerTests
{

private readonly DozerWebApplicationFactory _application;
private readonly HttpClient _httpClient;

public QuotesControllerTests()
{
// Arrange/Setup
_application = new DozerWebApplicationFactory();
_httpClient = _application.CreateClient();
}

}
Но я бы хотел сделать это с помощью класса IClassFixture:

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

public class QuotesControllerTests : IClassFixture
{

private readonly DozerWebApplicationFactory _application;
private readonly HttpClient _httpClient;

public QuotesControllerTests(DozerWebApplicationFactory application)
{
// It doesn't work because this constructor is public (tests need to be public) but the Factory is internal due to program being internal as stated above.
_application = application;
_httpClient = _application.CreateClient();
}

}
Однако последний подход не потому, что этот конструктор является общедоступным (тесты должны быть общедоступными), а потому, что Фабрика является внутренней, поскольку программа является внутренней, как указано выше.

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

CS0051    Inconsistent accessibility: parameter type 'DozerWebApplicationFactory' is less accessible than method 'QuotesControllerTests.QuotesControllerTests(DozerWebApplicationFactory)'
Что я могу сделать, чтобы это работало с IClassFixture?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ation-test
Ответить

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

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

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

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

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