[rspec-users] Question About Cleaning Up Specs?
Matt Wynne
matt at mattwynne.net
Thu Feb 18 11:45:45 EST 2010
On 18 Feb 2010, at 16:25, me at franklakatos.com wrote:
> I know we are suppose to keep specs obvious and readable, but is it
> normal (or there any opposition) to stubbing every method call that
> you needed in a before block and simply over-riding the same method
> with a should_receive in the actual tested it()?
>
> Example
>
> describe "#create" do
> it "should find a user"
> @user = mock_model(User)
> User.should_receive(:find).and_return @user
> @posts = []
> @post = mock_model(Post)
> @posts.stub(:build).and_return @post
> post "create"
> end
>
> it "should build a post from that user" do
> @user = mock_model(User)
> User.stub(:find).and_return @user
> @posts = []
> @post = mock_model(Post)
> @posts.should_receive(:build).and_return @post
> post "create"
> end
> end
>
> ... would become ..
>
>
> describe "#create" do
> before do
> @user = mock_model(User)
> User.stub(:find).and_return @user
> @posts = []
> @post = mock_model(Post)
> @posts.stub(:build).and_return @post
> end
>
> it "should find a user"
> User.should_receive(:find).and_return @user
> post "create"
> end
>
> it "should build a post from that user" do
> @posts.should_receive(:build).and_return @post
> post "create"
> end
> end
>
> Note that I stubbed both method calls in the before, but only
> should_require'd them in the appropriate it()?
>
> Let me know if that's good practice
That's exactly what I do.
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
cheers,
Matt
http://mattwynne.net
+447974 430184
More information about the rspec-users
mailing list