Я работаю над своим первым приложением MVVMCross, и я пытаюсь создать хорошую тестовую среду. Я посмотрел на тестирование, которое Стюарт делает в своем приложении TwitterSearch, но я ничего не нашел, что объясняет его подход или любой другой подход к тестированию MVVMCross. Кто-нибудь может найти хороший пост/учебник по правильному способу тестирования приложения MVVMCross? Помимо всего кода, что Newb (как я) не может полностью понять ...Тестирование приложения MVVMCross
ответ
Я не уверен, что вы просите ...
Что вы имеете в виду под «надлежащим образом»?
Это вопрос механики «как написать единичный тест?» Или вопрос о том, сколько единиц тестов для написания, какие компоненты тестировать, как глубоко идти и т. Д.?
Для механики:
- Я лично использую NUnit для тестирования (от NuGet)
- Я включил это в проекте .net4.5 библиотеки классов.
- Я использую Moq для большинства моих Mocking (от NuGet)
- Есть несколько объектов MvvmCross я вручную макет - как показано в этом TwitterSearch сообщение
- Там в MvvmCross базовый тест класс, который обеспечивает IoC/ServiceLocation - но Обычно я использую это только тогда, когда мне нужно использовать реальные классы MvvmCross - например когда класс тестируемой наследует от
MvxViewModel
- я только запускать тесты в рамках Resharper в Visual Studio
Есть много других подходов, в том числе некоторые люди предпочитают запускать тесты на устройствах - например, используя превосходный тест-драйв MonoTouch Nunit.
Есть также много людей, заинтересованных в тестировании BDD - например, такие вещи, как Франк, Calabash (приход в Xamarin Test Cloud) и Рамочный Phone Test Windows, что я написал - https://github.com/Expensify/WindowsPhoneTestFramework :)
Для философии, у меня нет сильного мнения, но мне нравится этот ответ:
https://stackoverflow.com/a/153565/373321
Я тоже плачу, чтобы написать код
моей главной борьбы был, когда я пытаюсь проверить мои ViewModels, наследуемые от модели MvxView. Кажется, что какая документация есть, немного устарела (например: больше не похоже на MvxViewDispatcherProvider). Также я пытаюсь понять, что именно происходит с ViewDispatcher. – ferics2
Если вы зададите конкретные вопросы - например, в том числе пример теста, который вы не смогли создать, - тогда я попытаюсь ответить с конкретным ответом. Также помните, что вы можете внести свой вклад в проект, ведя блог о том, что вы изучаете и создаете. Такие взносы являются движущей силой, которая в настоящее время улучшает проект и его документацию. – Stuart
Я старался быть более конкретным в моих праведниках. Спасибо за любую помощь, которую вы можете предоставить! – ferics2