Имеется некий код, в котором присутствует двойная проверка одного из условий.
Каким образом можно написать unit-тест так, чтобы он покрыл 100% кода?
Двойная проверка нужна в случае, если по какой-либо причине база данных отдаст результат, где price будет равен нулю.
Как вариант, написать заглушку (mock/stub) для метода работы с БД, который бы вернул товар с нулевой ценой?
Или есть иное (более правильное) решение?
def products
# first check on zero price
products = database.query 'SELECT * FROM product WHERE price > 0;'
products.map do |product|
# second check on zero price
unless product[:price] > 0
warn 'wrong price'
next
end
# some operation under product
end
end