KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This should have an easy answer but I'm struggling to find it (have checked RSpec documentation, EverydayRails Testing with RSpec, Google results). In my model specs I like to include basic attribute specs as follows: describe Foo do describe "basic attributes" do before { @foo = create(:foo) } subject { @foo } it { should be_valid } it { should respond_to(:color) } it { should respond_to(:height) } it { should respond_to(:some_other_attribute) } it { should respond_to(:you_get_the_idea) } ... I like these specs because if there is some kind of error within my factory and/or model these specs help me pinpoint it quickly. I've incorporated the expect syntax into all other specs and I like how it reads, but how to use it here? One option might be expect(@foo).to respond_to(:color) And another might be expect(it).to respond_to(:color) The former involves duplication that is avoided with the should syntax, but the latter looks strange to me (which could just be me). I realize this question is more about style than functionality*, but we Ruby developers are conscientious about style, and I want to adhere to standard practices and have readable, idiomatic code. Any help is appreciated. Thanks. UPDATE: Neither of my proposed options actually work, by the way. They both throw undefined method 'expect' errors. Now I'm really confused! Having thought about the error, I realize it's because the should specs above are within one-line block. The confusion, then, is how can I write a single-line block with the expect syntax? In light of this update, the question is very much about functionality and I'll be excited to hear others' thoughts. 4/2015 UPDATE rspec > 3.0 has added yet another way of handling these, and it sounds li
Tags (comma-separated)
Save Edits
Cancel