2013-11-11 6 views
0

Моего кода ..:тестов блока записи для частной функции .. Неуверенный правильной стратегии

after_save :handle_test 

private 

def handle_test 
    if parent.try(:is_test) 
    Resque.enqueue UnpackTestOnS3, parent.id 
    end 
end 

Я пытаюсь выработать стратегию лучшего способа протестировать эту модель логику.

Я проверяю, что Resque получил что-то? Я проверяю, что верно parent.try(:is_test)? Если это так, это было бы глупо, потому что в самом тесте мне пришлось бы заглушить это или update_attribute. Является ли это слишком подробным для тестирования вообще? Должен ли я просто тестировать, что файл появляется на S3? Я не уверен, что для модульного теста было бы целесообразно загрузить что-то на S3.

Все стратегии приветствуются.

ответ

2

Вы можете просто проверить тот факт, что есть работа в очереди для распаковки при создании или обновлении вашей модели

it "should enqueue job to unpack test on s3 on creating <model_name>" do 
    Resque.should_receive(:enqueue).with(UnpackTestOnS3, <parent_id>) 
end 

it "should enqueue job to unpack test on s3 on updating <model_name>" do 
    Resque.should_receive(:enqueue).with(UnpackTestOnS3, <parent_id>) 
end 

it "should not enqueue job to unpack test on s3 when the <model_name>'s parent is not for test" do 
    Resque.should_not_receive(:enqueue).with(UnpackTestOnS3, <parent_id>) 
end 
+0

Спасибо так много Vimsha, я действительно искренне ценю это. – Trip

 Смежные вопросы

  • Нет связанных вопросов^_^