Модульный тест C#: как я могу имитировать базу данных GetDbConnection() CreateCommand?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Модульный тест C#: как я могу имитировать базу данных GetDbConnection() CreateCommand?

Сообщение Anonymous »


Я создал макет базы данных, который работает хорошо, что позволяет мне тестировать операторы IF ниже, НО строка 55 вызывает метод, который в конечном итоге использует SQL для извлечения данных из базы данных. Поэтому, когда тест доходит до строки 77, модульный тест прерывается со следующим сообщением ОШИБКИ:

System.InvalidOperationException: методы, специфичные для реляционных данных, можно использовать только в том случае, если в контексте используется поставщик реляционной базы данных. в Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetFacadeDependities (DatabaseFacade dataFacade) в Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.GetDbConnection(DatabaseFacade dataFacade) в Clarity.Processes.Application.v0_3.TeamActivities.Handlers.ListTeamActivitiesByTeamHandler.GetTeamTasksQueryCommand(String teamId, Nullable`1 ClusterId, String searchTerm, Nullable`1 ProcessDefinitionHeaderId, Логическое значение истекло, Логическое значение приостановлено, Nullable`1 pageSize, Nullable`1 pageNumber) в C:\Source\Compliance\Clarity.Processes.Api\src\Clarity.Processes.Application\v0_3\TeamActivities\Handlers\ListTeamActivitiesByTeamHandler.cs:line 77 в Clarity.Processes.Application.v0_3.TeamActivities.Handlers.ListTeamActivitiesByTeamHandler.Handle (запрос ListTeamActivitiesByTeamQuery, CancellationToken cancelToken) в C:\Source\Compliance\Clarity.Processes.Api\src\Clarity.Processes.Application\v0_3\TeamActivities\Handlers \ListTeamActivitiesByTeamHandler.cs:строка 55 в Clarity.Processes.Application.Unit.Tests.v0_3.TeamActivities.Handlers.ListTeamActivitiesByTeamHandlerTests.HandleSuceeds_TeamIdVaried_ExpectedTeamActivitiesRecordsRecordsReturned() в C:\Source\Compliance\Clarity.Processes.Api\test\Clarity.Processes.Application.Unit.Tests \v0_3\ TeamActivities\Handlers\ListTeamActivitiesByTeamHandlerTests.cs:строка 201 Метод, требующий тестирования
Изображение


Модульный тест достаточно прост и явно не пытается имитировать соединение с базой данных.

Юнит-тест
Изображение


Наконец, к вашему сведению: строка 79 кода вызывает этот метод, поэтому требуется подключение к базе данных

Используется пример SQL
Изображение


Итак, вопрос в том, что, занеся данные в базу данных (строка 198 модульного теста), как я могу затем использовать эти данные для тестирования SQL? И могу ли я смоделировать команду создания (строка 77 кода), чтобы избежать вышеуказанной ошибки. Спасибо.

Я читал об этом, но не знаю, как с этим справиться ИЛИ возможно ли это сделать.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Codeception: приемочный тест выполняется как первый тест в группе тестов, где тест API определяется как первый тест в гр
    Anonymous » » в форуме Php
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous
  • Модульный тест – не удалось имитировать ответ sendgrid
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Функция createCommand() возвращает данные на иврите в виде ??? yii1 [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать/имитировать события очереди Laravel в тестах?
    Anonymous » » в форуме Php
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать/имитировать события очереди Laravel в тестах?
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

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