Как пользоваться Affter (: build) rspec - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть перечисление:

enum dv_type: { only_rental: 0, rental_buy: 1, only_one: 2 }

после того, как я проверю перечисление, если оно равно 1 и 2, тогда price будет> 0, а `будет равно 0

fatories/items.rb

price: 25000

dv_type { Item.dv_types.except(:only_one).keys.sample }

Теперь я хочу использовать affter (: build) для установки значения с помощью тип, что мне делать?

тип = 0, затем цена = 0

тип = 1 и 2, затем цена> 0

1 Ответ

0 голосов
/ 27 апреля 2020

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

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

dv_type { Item.dv_types.except(:only_one).keys.sample }
price { dv_type.zero? ? 0 : 25000 }
...