Можно проверить, вызван ли метод с использованием Moq and dependency injection. Однако можно ли проверить, что один метод в классе вызывает другого в одном классе?Тестирование, если метод в классе А был вызван из другого метода в ClassA
Например, я хочу проверить, что если я регистрирую какое-то исключение, также регистрируется информационное сообщение.
Метод:
public void Error(string message, Exception exception, long logId = 0)
{
var int32 = (int)logId;
Info("Id was converted to an int so that it would fit in the log: " + logId, int32);
Error(message, exception, int32);
}
Это была моя попытка модульного тестирования его. Тест не проходит, есть ли способ, которым это можно сделать?
void logging_an_error_with_a_long_id_also_logs_info()
{
var mock = new Mock<ILogger>();
var testedClass = new Logger();
var counter = 0;
testedClass.Error("test" + counter++, new Exception("test" + counter), Int64.MaxValue);
mock.Verify(m => m.Info(It.IsAny<string>(), It.IsAny<int>()));
}
Поскольку Info
и Error
методы в одном классе (CLASSA), я не верю, что я могу передать CLASSA как зависимость в ClassA. Так что он не нуждается в проверке?
Посмотрите [здесь] (http://stackoverflow.com/questions/1417048/how-to-verify-another-method-in-the-class-was-called-using-moq). – dee