Próbuję pisać specyfikacje dla poszczególnych funkcji w moich dekoratorów. Mam specyfikacje dla moich pomocników, takich jak poniżej (to tylko przykład):Jak określić konstruktory staplerów z rspec.
book_helper.rb
module BookHelper
def heading_title
@book.name[0..200]
end
end
book_helper_spec.rb
require 'spec_helper'
describe BookHelper do
subject { FactoryGirl.build(:book) }
it 'limits title to 200 characters' do
title = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium.'
subject.name = title
subject.save
@book = subject
expect(heading_title).to eq(title[0..200])
end
end
Biorąc pod uwagę następujące dekorator, jak mogę napisać specyfikację dla funkcji?
book_decorator.rb
class BookDecorator < Draper::Decorator
delegate_all
def display_days
model.months_to_display * 30
end
end
To nie zadziała, jeśli kod testowy oczekuje, że @book nie będzie dekorowany, co jest zalecanym sposobem wykonywania czynności: https://github.com/drapergem/draper#when-to-decorate-o bjects – jelder