Некоторые основные вопросы по тестированию или юнит-тестированию
Поэтому обычно мои приложения очень маленькие, и моя тестовая среда - это просто консольный проект., Я добавляю туда классы со статическими методами и проверяю свой код. Я нахожу этот подход довольно простым и приятным (особенно если учесть, что вывод получен)
Сейчас у меня есть небольшой тестовый проект в Visual Studio, поэтому я был немного озадачен тем, как вы будете тестировать вещи, которые не кажутся единичными, например:
Purchase.LoadAllAsync()//finished loading on the loadcomplete event
Какой тип модульного теста я бы написал для этого? Тем более, что это будет меняться в зависимости от того, что в базе данных?
Я немного покопался в SO и обнаружил: когда тест не является юнит-тестом?
Что меня еще больше смутило, если бы тест не был юнит-тестом, как бы вы его проверили?
Иногда я просто пишу небольшую тестовую функцию в главной форме или на главной странице в silverlight, а затем просто удаляю ее. Но я думаю, что юнит-тестирование используется, потому что тесты должны оставаться там, чтобы вы могли использовать их снова, верно?
Извините, если я немного невежественен! = Р
Спасибо
Обновить
Также хотелось бы добавить: как насчет тестов, которые нормально работают в самом приложении, но при вызове из внешнего кода это не удается. (Это случалось со мной пару раз) Это случается и с вами, ребята, и / или означает ли это плохой дизайн?
1 ответ
Если ваши тесты зависят от обстоятельств, не зависящих от вас, первое, что вы должны сделать, это взять их под свой контроль:-)
Другими словами, ваш тест должен использовать тестовую базу данных и, как часть установки, он должен очистить, а затем заполнить эту базу данных известными, предсказуемыми данными. В качестве альтернативы, вы можете вставить заглушки и вообще избежать доступа к базе данных.
Недетерминированный тест примерно так же полезен, как корова соевого молока. Может показаться, что это работает, но почему-то результаты не так удовлетворительны, как вы ожидали.