2010-11-22 2 views
2

Обычно мои приложения очень маленькие, а тестовая среда - это просто консольный проект. , Я добавляю классы со статическими методами и проверяю свой код. Я считаю, что этот подход будет довольно простым и приятным (особенно, поскольку вы можете видеть, что результат был доставлен)некоторые основные вопросы тестирования или модульного тестирования

У меня сейчас есть небольшой небольшой тестовый проект в визуальной студии, поэтому я немного смутился о том, как вы проверите вещи, которые «кажется т блока как, например:

Purchase.LoadAllAsync()//finished loading on the loadcomplete event 

Какой модульного тестирования я бы написать для этого? Тем более, что это изменится в зависимости от того, что в базе данных?

Я сделал некоторые скаутинг на SO и нашел это: When is a Test not a Unit-test?

Что смутило меня дальше, если тест не юнит тест, как бы вы это проверить?

Иногда я обычно просто пишу небольшую тестовую функцию в основной форме или на главной странице в silverlight, а затем просто удаляю ее. Но, я думаю, модульное тестирование используется, потому что тесты должны оставаться там, чтобы вы могли повторно использовать их правильно?

Мне жаль, если я немного невежественен! = P
Благодаря

Update


хотел также добавить: А как насчет тестов, которые работают хорошо в самом приложении, но при вызове из внешнего кода он выходит из строя. (Это случилось со мной пару раз) Случается ли это с вами, ребята, и/или это значит плохой дизайн?

+0

Возможный дубликат [некоторые основные вопросы тестирования или модульного тестирования] (http://stackoverflow.com/questions/4243374/some-basic-questions-on-testing-or-unit-testing) –

+0

@Pieter You ' я связан с моим вопросом? – gideon

+0

@ Питер, только один из них может быть дубликатом, нужно быть оригинальным :-) – paxdiablo

ответ

5

Если ваши испытания зависят от обстоятельств вне вашего контроля, первый вещь, которую вы должны сделать, это получить их под контролем :-)

Другими словами, ваш тест должен использовать испытательную базу данных и, как часть установки, он должен быть пустым, затем заполнить эту базу данных известными, предсказуемыми данными. Кроме того, вы можете использовать процедуры заглушки и вообще избегать доступа к базе данных.

Недетерминированный тест примерно так же полезен, как корова соевого молока. Возможно, выглядит как, но результаты как-то не так удовлетворительны, как вы ожидали.

+0

хорошо, как насчет метода Async? Как я могу утверждать, что он загружает, когда он загружается позже? – gideon

+1

Если это асинхронно, вам нужно проверить немедленное возвращение, либо (1) зафиксировать индикацию полной асинхронной операции в какой-то момент (с подходящим таймаутом) или (2) периодически проверять, чтобы в конечном итоге загрузить данные (снова с таймаутом). Поскольку операция async не очень полезна без указания, (1), вероятно, наиболее вероятный случай, но вам может потребоваться использовать (2), если это необходимо. – paxdiablo

+0

@paxdiablo как будет (1) работать в визуальных студиях unit test env? Единичный тест - это только один статический метод? – gideon

Смежные вопросы