Модульный тест IBackgroundJobClient.ScheduleC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Модульный тест IBackgroundJobClient.Schedule

Сообщение Anonymous »

Я использую Hangfire для планирования некоторых заданий. У всех моих заданий есть запланированная дата, поэтому я использую метод статического расширения расписания

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

public static string Schedule([NotNull] this IBackgroundJobClient client, [InstantHandle][NotNull] Expression methodCall, DateTimeOffset enqueueAt);
Я хочу провести модульное тестирование своих методов, чтобы проверить, действительно ли срабатывает Hangfire.

Для этого я ознакомился с документацией Hangfire по модульному тестированию (https://docs.hangfire.io/en/latest/back ... tests.html), в которой предлагается издеваться над IBackgroundJobClient и проверять в единственном открытом методе Create:

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

string Create([NotNull] Job job, [NotNull] IState state);
Но я вижу, что для вызовов расписания это не вызывается, вместо этого вызывается другая перегрузка, которая не является общедоступной, поэтому я получаю следующую ошибку:

р>

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

Message: Moq.MockException :
Expected invocation on the mock at least once, but was never performed: x => x.Create(It.IsAny(), It.IsAny())
No setups configured.

Performed invocations:
IBackgroundJobClient.Create(JobService.TaskFunction, ScheduledState)
Тем не менее, я попытался использовать метод Enqueue, и, похоже, он работает с макетом. Но мне нужно использовать Расписание.

Другим вариантом может быть утверждение о перегрузке, которую он фактически вызывает.

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

public static string Create([NotNull] this IBackgroundJobClient client, [InstantHandle][NotNull] Expression methodCall, [NotNull] IState state);
Но поскольку это метод расширения, он не подходит для Moq.

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

Message: System.NotSupportedException : Invalid verify on an extension method: x => x.Create(It.IsAny(), It.IsAny())
Итак, как я могу протестировать метод Hangfire for Schedule?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Codeception: приемочный тест выполняется как первый тест в группе тестов, где тест API определяется как первый тест в гр
    Anonymous » » в форуме Php
    0 Ответы
    97 Просмотры
    Последнее сообщение Anonymous
  • Как установить jq.Schedule в Vue3 + Typescript
    Гость » » в форуме Jquery
    0 Ответы
    12 Просмотры
    Последнее сообщение Гость
  • Как установить jq.Schedule в Vue3 + Typescript
    Anonymous » » в форуме Jquery
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Отключить @Schedule в Spring Boot IntegrationTest
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Класс «Illuminate\Support\Facades\Schedule» не найден.
    Anonymous » » в форуме Php
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous

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