Как я структура тесты для следующей программы:Используйте те же примеры множественного сценария огурца очерчивают
Я пишу модульное тестирование рамку для моделируемых комбинационных схем. Эта структура будет поддерживать несколько цифровых логических симуляторов (JLS, Logisim, TKGate и т. Д.). Таким образом, каждый тест должен запускаться один раз для каждого поддерживаемого симулятора.
Моя первая идея состоит в том, чтобы сделать что-то вроде этого:
Scenario Outline: Test of valid circuit
when I run DLUnit with "testCircuit1.<type> testFile"
Then I should see "All tests (4) passed." on stdout
Examples:
| type |
| jls | # extension for JLS files
| circ | # extension for Logisim files
| v | # extension for tkgate files
Scenario Outline: Test of invalid circuit
when I run DLUnit with "brokenCircuit1.<type> testFile"
Then I should see "There were failures" on stdout
Examples:
| type |
| jls |
| circ |
| v |
# Many more tests to follow
Хотя технически это будет работать, это приводит к кодам, которые могут быть трудно поддерживать: Каждая функция сопровождается списком поддерживаемых тренажерах. Добавление поддержки для дополнительного симулятора потребует добавления одной и той же строки к каждому тесту.
Я мог бы также создать jls.feature
, а затем использовать sed
для автоматического создания logisim.feature
и tkgate.feature
; но я бы хотел избежать такой сложности, если Cucumber предлагает более простое встроенное решение.
Возможно, я не понимаю, но насколько я понимаю, у вас будет только каждый новый симулятор дважды, по каждому из описанных выше сценариев, который мне кажется прекрасным. –
Мне не нравятся ссылки на внешние файлы. Это скрывает правило принятия решения. –
Я привел только два примера выше. Я ожидаю от 10 до 20 сценариев, когда закончу. – Zack