Модульное тестирование MVVM - PullRequest
0 голосов
/ 18 июня 2020

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

Более того, большинство моих методов модели представления являются частными, потому что к ним нужно получить доступ только изнутри модели представления, поэтому их нельзя просто протестировать с помощью модульных тестов, как метод publi c. Это приводит к тому, что можно тестировать очень мало модели представления, что противоречит предполагаемому значению MVVM с точки зрения тестирования, а качество POV невыгодно, так как мне приходится полагаться на ручные тесты, чтобы доказать функциональность моего кода.

Возможно, я ошибаюсь, и я новичок в использовании MVVM, но любая помощь будет принята с благодарностью за go по этому поводу.

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Когда я пишу приложения WPF, я сосредотачиваю свое тестирование на моделях.

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

Как только я нахожу что-то, что не работает как Ожидается, что при запуске приложения я go вернусь и напишу тест для этого конкретного варианта использования. Эта первоначальная «ошибка» обычно показывает, что было сложно реализовать в данной конкретной модели представления, и является хорошей отправной точкой для написания большего количества тестов и продолжения разработки в более ориентированной на тестирование манере.

0 голосов
/ 18 июня 2020

Вы можете протестировать те же действия, что и пользователь, в вашем пользовательском интерфейсе.

По определению эти вещи будут опубликованы c, поскольку представление будет привязано к ним.

например . Скажем, у вас есть коллекция виджетов и команда AddWidgetCommand. Вы можете проверить, что выполнение команды добавит виджет в коллекцию.

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