In my sucessfull DELETE, there's no mock. In fact, I don't use mocks on all of my other tests. I know how this can make my tests brittle.
But I couldn't figure how to test this: "if anything goes wrong with the DELETE, raise InternalServerError" without mocking. And, merb-gen do not creates tests for failing. It only create tests for successful delete. Arthur Zapparoli http://merb-br.org http://arthurgeek.net On Sun, Dec 14, 2008 at 12:52 AM, Tony Mann <[email protected]> wrote: > You don't need to use mocks. To see how to do what you want, use merb-gen > resource_controller to make controller, and then look at its specs. The > specs use pure CRUD to create and delete resources, making it a more > realistic test of the system. > > The merb community frowns on mocks, and once you ditch them, you will see > why. Suddenly your tests fail when the actual system fails! > > ..tony.. > > On Sat, Dec 13, 2008 at 2:25 PM, Arthur Zapparoli <[email protected]> > wrote: >> >> Hi everyone, >> >> How to test a failing request on my controllers? >> >> Eg: I want to test a sucessfull DELETE, and a failing DELETE too. >> >> I did this using mocks, but I wan't to know if there's any othr way to >> test this. >> >> Here's my code: >> >> describe "a failing DELETE", :given => "a foo exists" do >> >> before(:each) do >> Foo.should_receive(:get).and_return(@foo = Foo.first) >> @foo.should_receive(:destroy).and_return(false) >> end >> >> it "do not deletes the foo from the database" do >> lambda { delete_neighborhood(Foo.first) }.should_not change { >> Foo.count } >> end >> >> it "raises a 500 InternalServerError" do >> @response = delete_neighborhood(Foo.first) >> @response.status.should == 500 >> end >> end >> >> And, controller: >> >> def destroy(id) >> @foo = Foo.get(id) >> raise NotFound unless @foo >> if @foo.destroy >> redirect resource(:foos), :message => {:notice => "Foo >> sucessfully deleted"} >> else >> raise InternalServerError >> end >> end >> >> >> Arthur Zapparoli >> http://merb-br.org >> http://arthurgeek.net >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "merb" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/merb?hl=en -~----------~----~----~----~------~----~------~--~---
