Поясню вопрос. Фреймворк предлагает нам 2 типа блоков выполнения: when/then и expect/where.
В первом случае приходится дублировать код, во втором не понятно, как ловить исключения. Как грамотно построить тест?
Что значит ловить исключения? Если проверить бросилось ли какое-нибудь исключение во время выполнения теста, то переходим на страницу документации и по поиску ищем на ней Exception Conditions - там это описано. Короче говоря, используйте thrown() метод. Но там описано только для when/then. Если код дублируется, то что мешает вынести его в метод и вызывать его потом? Возможно, я не понял вопрос и надо немного конкретнее и с примером.
Приведу пример. Представим себе функцию вычитания: принимает 2 числа и возвращает третий. Пишем несколько штучек параметров в блоке where и в expect проверяем, пользуясь переменными. Теперь нам нужно добавить исключение при делении на ноль. Как и где записать этот вариант?
Виталий, Да, с таким не сталкивался, увы. В доках тоже что-то не увидел как-то ничего такого (. Получается для такого случая отдельный тест писать. Ну такое. Интересный, конечно, вопрос.