Проверка результатов в функциональных тестах - PullRequest
0 голосов
/ 26 февраля 2019

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

Сейчас я пытаюсь создать функциональные тесты - тесты, которые взаимодействуют с реальным устройством.

Вопрос : Можно ли проверять результаты с помощью собственных функций?Например, есть методы GetChannelState () и SetChannelState ().Могу ли я проверить метод «Get» с помощью метода «Set» и наоборот?Пожалуйста, опишите подход, который вы используете в подобных случаях.

Пример : Есть осциллограф.Чтобы включить второй канал, библиотека отправляет на строку осциллографа "SELECT:CH2 ON".Чтобы проверить, включен ли канал, он отправляет "SELECT?", а затем анализирует ответ.Ответ будет выглядеть следующим образом "SELECT:CH1 1;CH2 1;CH3 0;CH4 0".

Для установки значения существует SetChannelState(int channelNumber) API, а для получения значения используется GetChannelState(int channelNumber) API.

Поэтому вопрос заключается в том, могу ли я использовать SetChannelState для проверки GetChannelState и наоборот.

1 Ответ

0 голосов
/ 26 февраля 2019

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

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

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

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