Модульное тестирование реального обмена данными сервера?

Я работаю над проектом, который имеет клиентскую и серверную части. И я пишу инструмент «предварительной регистрации», который будет проверять большую часть нашего взаимодействия между клиентом и сервером.

У меня уже есть модульные тесты с обеих сторон, теперь я действительно хочу проверить интеграцию между ними. Как реальное подключение клиента к серверу и наоборот.

Я действительно хочу провести модульное тестирование, но мне очень трудно понять, как я могу инициализировать инфраструктуру MMVMCross и классы моей модели представления.

В другом потоке я попросил помощи в моем «консольном приложении», которое запускает тесты, но также очень сложно инициализировать фреймворк, и это заставляет меня терять крутость модульного тестирования с Visual Studio и reSharper.

Мои модели просмотра используют SQLite и HttpClient с async/await.

Например: я не могу найти способ создать модель представления, для которой потребуются эти интерфейсы:

IChatService, IMvxMessenger, IDataService, ISettingsService

Некоторые из фреймворка, некоторые из моего собственного кода. Я знаю и пытаюсь зарегистрировать свои на TestFixtureSetUp, но, конечно, это не удается, так как базовая подсистема MVVM (ioc?) еще не настроена.

Некоторым вышеперечисленным службам, например, IDataService, также требуется ISQLiteConnectionFactory, IMvxMessenger, ISettingsService.

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

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

Серхио


person Code Knox    schedule 06.09.2013    source источник


Ответы (1)


Например: я не могу найти способ создать модель представления, для которой потребуются эти интерфейсы:

IChatService, IMvxMessenger, IDataService, ISettingsService

Как правило, это делается с использованием реализаций Mock, а затем вызывается конструктор ViewModel непосредственно с этими Mocks.

Мне очень трудно понять, как я могу инициализировать инфраструктуру MMVMCross.

Чтобы инициализировать часть инфраструктуры IoC, вы можете использовать вспомогательный класс MvxIoCSupportingTest -https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Test/Cirrious.MvvmCross.Test.Core./MvxIoCSupportingTest.cs

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


Если это поможет, пример этого типа теста: L21" rel="nofollow">https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20TwitterSearch/TwitterSearch.Test/TwitterViewModelTest.cs#L21


Если в этом ответе недостаточно информации, предоставьте немного больше примера кода тестов, которые вы пытаетесь написать.

person Stuart    schedule 06.09.2013