Разделите части логики и пользовательского интерфейса - не располагайте всей своей бизнес-логикой и сложным кодом в коде за страницей. Вместо этого создайте их из стандартной структуры уровней (уровень данных, уровень бизнес-правил / логики, уровень пользовательского интерфейса). Это гарантирует, что ваш логический код, который вы хотите протестировать, не ссылается на форму, а использует классы, которые легко тестируются модулем.
Для очень простого примера, не используйте код, который делает это:
string str = TextBox1.Text.ToString();
//do whatever your code does
TextBox2.Text = str;
Вместо этого извлеките логику в отдельный класс с помощью метода:
TextBox2.Text = DoWork(TextBox1.Text.ToString());
public class Work
{
public string DoWork(string str)
{
//do work
return str2;
}
}
Таким образом, вы можете написать модульные тесты, чтобы убедиться, что DoWork возвращает правильные значения:
string return = DoWork("TestThisString");
Теперь вся ваша логика является модульно-тестируемой, только с кодом, который ДОЛЖЕН ссылаться на страницу непосредственно на уровне UI.