Вам не нужно ничего регистрировать в своих юнит-тестах.Предполагается, что код в тестах говорит сам за себя, и любой, кто их читает, может понять, что происходит.Если вы чувствуете необходимость добавить протоколирование в свои тесты, то это признак того, что ваш код слишком сложен и нуждается в рефакторинге.
Это хорошая идея, чтобы понять принципы, лежащие в основе Принципы SOLID и рефакторинг вашего кода, чтобы следовать этим "правилам".Я бы порекомендовал первый принцип, которому вы пытаетесь следовать, это Принцип единой ответственности .Это должно помочь вам реорганизовать ваш код, чтобы сделать его более тестируемым, и избавить вас от необходимости добавлять протоколирование в ваши тесты.(ПРИМЕЧАНИЕ: в Интернете есть и другие примеры - ссылки, приведенные выше, являются лишь примерами, которые я нашел при быстром поиске).
РЕДАКТИРОВАТЬ
Вы можете создать свой собственный logger
класс, чтобы обернуть ваши Console.WriteLine(...)
вызовы, например,
public static class TestLogger
{
public static void Log(string output)
{
#if DEBUG
Console.WriteLine(output);
#endif
}
}
и в вашем тестовом коде использовать ваш класс
public class MyTests
{
public void FirstTest()
{
TestLogger.Log("Just started");
}
}
Тот факт, что регистратор пишет только на консоли в режиме отладкискрыт от тестового кода и, надо надеяться, сделает его немного понятнее.В будущем, если вы хотите использовать Log4Net
или другую библиотеку журналов, вы можете обновить свой класс TestLogger
, и, надеюсь, ни один из ваших тестовых примеров не нуждается в изменении: -)