Макет IConfiguration выдает исключение NullReferenceException в модульном тесте с использованием Moq [дубликат]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Макет IConfiguration выдает исключение NullReferenceException в модульном тесте с использованием Moq [дубликат]

Сообщение Anonymous »

Я обнаружил исключение NullReferenceException в методе SetInterval() моего класса ApiWorker при запуске модульного теста. Ниже приведены соответствующие части моего кода.

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

public ApiWorkerTests()
{
_mockLogger = new Mock();
_mockDbService = new Mock();
_mockApiService = new Mock();
_mockConfig = new Mock();

_mockConfig.Setup(c => c[$"Authentication:CompanyKey"]).Returns("SomeKey");
_mockConfig.Setup(c => c[$"Authentication:VehicleKey"]).Returns("SomeKey");
_mockConfig.Setup(c => c["Interval"]).Returns("00:00:10");
}

[Fact]
public void ApiWorker_Initialization()
{
// Arrange & Act
var worker = new ApiWorker(_mockApiService.Object, _mockLogger.Object, _mockConfig.Object, _mockDbService.Object);

// Assert
Assert.NotNull(worker);
}
А вот ApiWorker:

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

 public ApiWorker(IApiService apiService, ILogger logger, IConfiguration config, IDatabaseService db)
{
_apiService = apiService;
_logger = logger;
_db = db;
_companyKey = config[$"Authentication:CompanyKey"] ?? throw new Exception("Company ID cannot be null");
_vehicleKey = config[$"Authentication:VehicleKey"] ?? throw new Exception("Vehicle ID cannot be null");
_config = config;

SetInterval();
}

private void SetInterval()
{
var intervalString = _config.GetValue("Interval");

// Conversion to DateTime
}

Жесткое кодирование интервальной строки со значением «00:00:10» позволяет пройти тест, но я хочу понять, почему макетная настройка не работает должным образом. Кажется, проблема в настройке макета IConfiguration.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Moq.raiseasync приводит к System.NullReferenceException moq.raise работает нормально
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Moq.raiseasync приводит к System.NullReferenceException moq.raise работает нормально
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Moq.raiseasync приводит к System.NullReferenceException moq.raise работает нормально
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Moq.raiseasync приводит к System.NullReferenceException moq.raise работает нормально
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Инициализация внутренних переменных с помощью Moq в модульном тесте
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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