У меня есть неизменяемый класс с некоторыми частными полями, которые задаются во время выполнения конструктора. Я хочу, чтобы модуль тестировал этот конструктор, но я не уверен, что это «лучшая практика» в этом случае.Как скомпилировать тестовые конструкторы классов неизменяемых классов?
Простой пример
Этот класс определен в Ассамблеи1:
public class Class2Test
{
private readonly string _StringProperty;
public Class2Test()
{
_StringProperty = ConfigurationManager.AppSettings["stringProperty"];
}
}
Этот класс определен в Assembly2:
[TestClass]
public class TestClass
{
[TestMethod]
public void Class2Test_Default_Constructor()
{
Class2Test x = new Class2Test();
//what do I assert to validate that the field was set properly?
}
}
РЕДАКТИРОВАНИЕ 1: Я ответил на этот вопрос с потенциальным решением, но я не уверен, что это «правильный путь». Поэтому, если вы думаете, что у вас есть идея лучше, пожалуйста, опубликуйте ее.
Этот пример не стоит тестировать, но предположим, что у конструктора есть более сложная логика. Лучше всего избегать тестирования конструктора и просто предположить, что он работает, если все тесты для методов в классе работают?
EDIT 2: Похоже, я сделал образец немного простым. Я обновил его с более разумной ситуацией.
Глядя на коде, я могу Не найди там заявление, которое может потерпеть неудачу. Я не вижу причин, почему его нужно протестировать. – jop 2008-09-25 00:18:17
Я обновил образец. Предположим, что в конструкторе есть что-то, что может потерпеть неудачу, фактический код, который я пытаюсь проверить, довольно длинный, и я не хочу вставлять его здесь. – 2008-09-25 00:20:46