В настоящее время я пишу некоторые методы, которые выполняют некоторые основные операции с элементами управления формы, например Textbox, Groupbox, эти операции являются общими и могут использоваться в любом приложении.
Я начал писать несколько модульных тестов и просто задавался вопросом, следует ли мне использовать настоящие элементы управления формой, найденные в System.Windows.Forms, или я должен просто смоделировать разделы, которые я пытаюсь протестировать. Так, например:
Скажем, у меня есть этот метод, который принимает элемент управления, и если это текстовое поле, он очистит свойство текста следующим образом:
public static void clearall(this Control control)
{
if (control.GetType() == typeof(TextBox))
{
((TextBox)control).Clear();
}
}
Затем я хочу проверить этот метод, поэтому я делаю что-то вроде этого:
[TestMethod]
public void TestClear()
{
List<Control> listofcontrols = new List<Control>();
TextBox textbox1 = new TextBox() {Text = "Hello World" };
TextBox textbox2 = new TextBox() { Text = "Hello World" };
TextBox textbox3 = new TextBox() { Text = "Hello World" };
TextBox textbox4 = new TextBox() { Text = "Hello World" };
listofcontrols.Add(textbox1);
listofcontrols.Add(textbox2);
listofcontrols.Add(textbox3);
listofcontrols.Add(textbox4);
foreach (Control control in listofcontrols)
{
control.clearall();
Assert.AreEqual("", control.Text);
}
}
Должен ли я добавлять ссылку на System.Window.Forms в мой модульный тест и использовать реальный объект Textbox? или я делаю это неправильно?
ПРИМЕЧАНИЕ. Приведенный выше код является лишь примером, я его не компилировал и не запускал.