Spec your Cells.
This plugin allows you to spec your cells with RSpec.
Cells is Rails' popular view components framework.
This gem runs with RSpec3 and Rails >= 3.x and Cells 4. Add it to your app's Gemfile
.
group :development, :test do
gem "rspec-cells"
end
Note: In case you're still using Cells 3, go here.
Simply put all your specs in the spec/cells
directory or add type: :cell
to the describe block.
However, let the cell generator do that for you!
rails g rspec:cell comment show
will create an exemplary spec/cells/comment_cell_spec.rb
for you.
To invoke rendering of a cell you use the exact same API as in your application.
describe CommentCell do
it "renders comment" do
expect(cell(:comment).call).to have_content "Really Great!"
end
end
As you can see, it is nothing more than using #cell
or #concept
, invoke the default state using #call
(or any other state with call(:other_state)
) and use Rspecs and Capybara's matchers.
If your cells use helpers with controller dependency, you need to specify a controller to use in your test.
describe CommentCell do
controller CommentsController
Excuse the clumsiness, but this is done wrong in Rails and not Cells' fault.
Run your examples with
rake spec:cells
All the docs about testing can be found on the Trailblazer project page.
By default your code for caching code is not run if you set ActionController::Base.perform_caching = false That's a reasonable default but you might want to increase coverage by running caching code at least once. Here is an example:
describe SomeCell do
describe 'caching' do
enable_cell_caching!
# Code for testing...
end
end
Big thanks to folks who helped me a lot.
- Jorge Calás Lozano calas@qvitta.net (Cleanup, capybara string matchers)
- Abdelkader Boudih <@seuros>
Copyright (c) 2010-2015, Nick Sutterer
Copyright (c) 2008-2009, Dmytro Shteflyuk kpumuk@kpumuk.info http://kpumuk.info
Released under the MIT License.