[rspec-users] Common setup code and naming specifications

David Chelimsky dchelimsky at gmail.com
Thu Jan 4 18:12:18 EST 2007


On 1/4/07, Tobias Grimm <listaccount at e-tobi.net> wrote:
> Hello!
>
> I have a lot of contexts for testing Rails controllers, that must do
> something like 'session[:logged_in] = true' in their setup. How can this
> be refactored? In unit tests I would simply create a
> LoggedInControllerTest base class, that all my functional tests would
> derive from.

module MyHelpers
  def set_logged_in
    session[:logged_in] = true
  end
end

context "..." do
  include MyHelpers
  setup do
    set_logged_in
  end
end

>
> And another small question:
>
> In my controller specifications I often have to decide whether to write:
>
> specify "should provide the first ten items in @items and three pages in
> @pages when passing no :page parameter to the :list action"
>
> or
>
> specify "should provide the first ten items and three pages when not
> selecting a specific page"

Definitely the latter. These names should be how the customer would
talk about requirements, not how developers would - UNLESS you're
writing a framework for developers and developers ARE your customers.

David

> So the decision is, whether to explicitly name parameters, return values
> and actions or to use a more abstract phrase. How do you handle this?
> Sorry, might be a stupid question, but I'm, still trying to get the
> right "feeling" for BDD-style testing.
>
> bye,
>
> Tobias
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list