Первый тестовый блок (в серебряном свете) - PullRequest
4 голосов
/ 08 июня 2010

Привет, я искал другие посты, но большинство из них предполагали, что люди знали, что они делали в своих модульных тестах, и, честно говоря, я не знаю.Я вижу идею, лежащую в основе модульного тестирования, и сейчас я пишу приложение для Silverlight в скрытом виде, и я хотел бы написать несколько модульных тестов, чтобы быть уверенным, что я на правильном пути.Я хотел бы иметь возможность использовать шаблон проекта модульного тестирования SL4 vs 2010 Silverlight, чтобы он был простым и не использовал внешние инструменты.Так что мне нужен ответ на такие вопросы:

Каковы методы модульного тестирования?чем отличаются юнит-тесты от автоматических юнит-тестов?Как осмысленно пройти юнит-тест в silverlight?Что я должен знать во время модульного тестирования (в silverlight)?

Кроме того, мне следует внедрить какой-то шаблон IRepository в мое приложение silverlight, чтобы упростить модульное тестирование?

Я буду публиковать здесь полезные ссылки, поскольку я буду исследовать это по пути:

Реализация MVVM в silverlight - http://community.infragistics.com/pixel8/media/p/91949.aspx

Mix10 MVVM talk - http://live.visitmix.com/MIX10/Sessions/EX14

Модульное тестирование приложений Ria - http://blogs.msdn.com/b/vijayu/archive/2009/06/08/unit-testing-business-logic-in-net-ria-services.aspx

Большой ресурс ПК: http://dotenetscribbles.blogspot.com/2009/12/unit-testing-dependency-injection-and.html

1 Ответ

2 голосов
/ 08 июня 2010

Я никогда не использовал шаблон тестового проекта silverlight . Я использовал только nunit для тестирования юнитов в silverlight. Итак, я оставлю это кому-то еще, чтобы ответить. Что касается других ваших вопросов:

Модульное тестирование должно управлять вашим дизайном. Ваши юнит-тесты являются первыми пользователями вашего кода. Ваш код основан на некоторых ожиданиях, и модульные тесты подтверждают, что ожидания оправдываются. Использование шаблона MVVM (как вы используете Silverlight), облегчает модульное тестирование. Самое важное, что нужно помнить, это то, что вы должны писать тестируемый код. И для написания тестируемого кода самое важное, что нужно помнить, - это вводить зависимости. Например, если ваш код делает вызов в БД. У вас не может быть модульного теста, звонящего в БД. Вместо этого вы будете издеваться над уровнем доступа к данным. Это где такие понятия, как издевательства и заглушки входят в картину. Я использую moq для насмешки в своих юнит-тестах sivlerlight. Еще одна важная вещь, которой я следую, которая, как мне кажется, облегчает модульное тестирование, - это принцип единой ответственности. Наконец, рассматривайте ваш тестовый код как производственный код, иначе ваши тесты могут дать вам ложное представление о том, что ожидания оправдываются. Ваши модульные тесты являются кодом и, следовательно, могут иметь ошибки.

в чем различия между единицами тесты и автоматические юнит-тесты?

Я не совсем уверен, что вы имеете в виду под этим. Модульные тесты - это автоматизированный способ тестирования белого ящика. Вы можете иметь сценарии, которые запускают все модульные тесты, каждый раз, когда вы проверяете любой код в хранилище. Это может быть частью непрерывной интеграции.

Как мне провести модульный тест в Silverlight, 1014 *

В Silverlight для облегчения тестирования вы должны использовать команды, а не писать код в файлах с выделенным кодом. Это позволяет имитировать нажатие кнопки и другие события GUI во время модульного тестирования. Используя шаблон MVVM вместе с командами, вы можете протестировать весь код C # (не xaml), вплоть до пользовательского интерфейса (конвертер, виртуальные машины и т. Д.).

Очень сложно упомянуть все в этом одном ответе. Я хотел бы предложить, вы Google для MVVM, команды в Silverlight, Мартин Фаулер - макет не заглушки, насмешливые рамки для Silverlight, внедрение зависимостей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...