Überprüfen Sie BackgroundJob.Delete in Hangfire im mstest-Unit-TestC#

Ein Treffpunkt für C#-Programmierer
Guest
 Überprüfen Sie BackgroundJob.Delete in Hangfire im mstest-Unit-Test

Post by Guest »

Ich habe eine CancelScheduledJob-Methode, die die ID eines Hintergrundjobs aufnimmt und JobStorage verwendet, um diese ID abzurufen und den passenden Hangfire-Job abzubrechen:

Code: Select all

    var mon = JobStorage.Current.GetMonitoringApi();
var scheduledJobs = mon.ScheduledJobs(0, int.MaxValue);
var jobsToDelete = scheduledJobs.Where(job => job.Value.Job?.Args?.Any(arg => arg is Guid guid && guid == id) == true).ToList();

jobsToDelete?.ForEach(job => _backgroundJobClient.Delete(job.Key));
Die Überprüfung einer Enqueue()- oder Schedule()-Methode ist möglich, indem die im BackgroundJobClient-Mock aufgerufene Create-Methode überprüft wird, wie hier:

Code: Select all

    _backgroundJobClientMock.Verify(x => x.Create(
It.Is(job => job.Method.Name == "Run" && Guid.Parse(job.Args[0].ToString()) == input),
It.IsAny()));
Aber wie würde ich die Methode „Löschen“ überprüfen? Ich mache mich bereits über JobStorage lustig, finde aber anscheinend keine Möglichkeit, die Methode „Delete()“ zu überprüfen. Derzeit habe ich Folgendes:

Code: Select all

_backgroundJobClientMock.Verify(
x => x.Delete(It.Is(jobId => jobId == "job1")),
Times.Once
);
Aber ich stoße auf das häufige Problem, dass Löschen eine Erweiterungsmethode ist und nicht in einem Setup-/Überprüfungsausdruck verwendet werden kann.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post