Я пытаюсь получить вывод из регистратора при выполнении моего модульного теста в окне вывода, но ничего не отображается. Я использую ILoggingFactory в тестовом классе. Я ожидаю увидеть весь мой журнал из тестового класса и фактического класса реализации, т.е. JobQueueManager.
Test.cs
public class ScheduledJobDatesTest :IClassFixture<ScheduleJobTestFixture>
{
private ScheduleJobTestFixture ScheduleJobFixtureHelper { get; }
Mock<IDbConnection> mockJobQueueManager = new Mock<IDbConnection>();
ILoggerFactory logger = new LoggerFactory();
public ScheduledJobDatesTest(ScheduleJobTestFixture scheduleJobFixture)
{
ScheduleJobFixtureHelper = scheduleJobFixture;
mockJobQueueManager.SetReturnsDefault(new SqlConnection());
logger = LoggerFactory.Create(a => a.AddConsole());
logger.CreateLogger("Executing Test");
}
[Fact]
public void ValidScheduledJobDateForNextWeeklyAppointment()
{
Debug.WriteLine("Testing");
logger.CreateLogger("Test").LogInformation("Test Information");
//Arrange
JobQueueManager jobQueueManager = new JobQueueManager(mockJobQueueManager.Object, logger.CreateLogger<JobQueueManager>());
var scheduledJob = ScheduleJobFixtureHelper.GetMockedScheduledJob(JobType.Week);
//Act
bool isTrue = jobQueueManager.IsScheduledJobDateValidForJobType(scheduledJob.JobDate);
//Assert
Assert.True(isTrue);
}
}
JobQueueManager.cs
public class JobQueueManager : IJobQueueManager
{
public IDbConnection DBConnection { get; }
public ILogger<JobQueueManager> Logger { get; }
public JobQueueManager(IDbConnection dbConnection, ILogger<JobQueueManager> logger)
{
DBConnection = dbConnection;
Logger = logger;
Logger.LogInformation("Initialized Job Queue Manager");
}
public bool IsScheduledJobDateValidForJobType(DateTime ScheduledJobDate)
{
Logger.LogDebug("Verifying unit test");
var currentDate = DateTime.Now;
var nextJobDate = ScheduledJobDate;
if (nextJobDate > currentDate)
{
var appointmentsDaysDifference = Math.Ceiling((nextJobDate - currentDate).TotalDays);
if(appointmentsDaysDifference == 1)
return true;
}
return false;
}
}