У меня есть этот код в методе, который я тестирую
public void SomeMethod()
{
IMyLogger log = new Logger();
log.ConfigLogger(); // Trying to not call this method
//...some other code...
}
Где это класс Logger
public class Logger : IMyLogger
{
public void ConfigLogger()
{
//Serilog logging code I´m trying to not call in my unittests.
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.CreateLogger();
}
}
И это мой модульный тест, в котором я пытаюсь издеваться (не вызывать код внутри метода ConfigLogger() безуспешно).
public void Test()
{
var logger = A.Fake<IMyLogger>();
A.CallTo(() => logger.ConfigLogger()).DoesNothing(); //Not working..
}
Итак, что мне здесь не хватает? Почему я считаю, что это должно быть именно так? Несмотря на то, что специалист по Serilog дал мне лучший способ юнит-тестирования Serilog, я также хотел бы узнать, как «FakeItEasy метод void».