Тестирование Windows Форма заявки с логи c на стороне БД - PullRequest
0 голосов
/ 17 января 2020

Я работаю над приложением C# Windows Forms.

Все бизнес-логики c находятся на стороне базы данных (PL SQL). На C# стороне находится только внешний интерфейс (списки, флажки и кнопки для получения данных из БД). Я хотел написать несколько модульных тестов для него, но не могу использовать Windows Формы в NUnit3 (VS не видит библиотеку, не может создать объект ComboBox et c.)

Мой вопрос - есть ли Есть ли возможность проверить элементы пользовательского интерфейса NUnit? И есть ли смысл проверять это, пока бизнес-логика c находится на стороне БД?

Ответы [ 2 ]

0 голосов
/ 17 января 2020

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

Хорошо спроектированный GUI, включая один, написанный для форм Windows, может извлечь выгоду из модульных тестов, но обычно для этого не нужно столько, сколько требует серверная часть. Например, вам не нужно проверять, что TextBox отображает текст, который вы в него вставили - код для TextBox не ваш код. Вы можете захотите проверить, что правильный текст действительно передан TextBox и что расположение и размер TextBox установлены правильно - по крайней мере, это видно на экране.

Это ваше суждение о том, сколько из этого типа тестирования необходимо. Если вы хотите написать такие тесты, NUnit - хороший инструмент для этого, как и большинство тестовых сред на одном уровне. Если вы новичок в NUnit и / или программируете модульное тестирование c, вы должны знать, что большинство людей считают этот тип GUI тестированием несколько более продвинутым, чем бэкэнд-тестирование. (Раньше я давал уроки по Windows GUI тестированию и нацеливал их на людей, которые уже знали, что NUnit уже несколько лет проводит с ним модульное тестирование.)

Мой совет - найти места в GUI, где вы видели или предвидели ошибки. Например, у вас может быть флажок, который контролирует, активны ли другие элементы управления или нет. Этот вид UI logi c - именно то, для чего ценны юнит-тесты GUI.

Общие рекомендации ...

  • Не пытайтесь выполнить внешний вид модульного теста - просто посмотрите на него!

  • Используйте mocks для замены любой серверной базы данных или кода на стороне сервера.

  • Используйте архитектуру, которая позволяет отдельно тестировать GUI logi c - мне нравится MVP для Windows форм и (очевидно) MVVM для WPF.

  • Начало теста и обработка событий отдельно , а не как одно. Это особенно важно для событий, происходящих из элементов управления SWF.

Если вы сделаете это и столкнетесь с конкретными c проблемами, просто задайте нам другой вопрос.

0 голосов
/ 17 января 2020

Если вы создаете свой проект из visual studio, это дает возможность для модульного тестирования проекта с созданием основного проекта, https://docs.microsoft.com/en-us/visualstudio/test/create-a-unit-test-project?view=vs-2019. Также это может помочь вам https://social.msdn.microsoft.com/Forums/windows/en-US/5239f415-3156-4871-96de-751616865ef2/how-to-do-unit-testing-for-windows-form-application?forum=vsunittest

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