Я хочу упростить некоторые тесты.В частности, я хочу определить метод подтверждения блока, где внутри блока у вас есть доступ к специальному вспомогательному методу, но при этом также есть доступ к контексту теста.Примерно так:
def assert_metric(report, metric, &block)
def sum(value, *filters)
filters.each do |filter|
assert_equal value, report.sum(metric, filter)
end
end
instance_eval(&block)
end
assert_metric report, :select_count do
sum 1
sum 1, :bookmark, :like
sum 0, :vote
end
Как правильно это сделать?
Ограничения *:
sum
В текущем выполняющемся методе выполняетсяконтекст теста (чтобы вы могли сделать assert_equal
и получить доступ ко всем переменным экземпляра. sum
недоступен вне этого блока - Вы не можете получить аргумент блока (т. е.
do |test_context|...
)
Есть идеи?