On 08/13/2013 06:58 AM, Ash Moran wrote: > Unfortunately, as the actor is running asynchronously, the example checks the > actor's alive state before it completely dies. One way to approach this is to > use Celluloid's actor guarantees and send it another message, which will be > handled synchronously after the first is processed, and will raise a > DeadActorError: > > it "doesn't crash the actor" do > actor.method_that_raises_an_error rescue nil > > expect { > actor.method_that_raises_an_error > }.to_not raise_error(Celluloid::DeadActorError) > end
The problem with not_to raise_error is that it's a tad confusing. It could be interpreted either that you meant no error at all to be raised, or an error to be raised but not of the given type. I'd probably write it it as a positive: expect { actor.method_that_raises_an_error }.to raise_error(SpecificTypeOfErrorImExpecting) This will fail if the error ended up being a DeadActorError or if the method wasn't called but didn't raise an error. Does this help at all? I hope I understood you fully. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users