[rspec-users] Best practices for sharing state between story steps?

Jim Morris ml at e4net.com
Tue Sep 9 23:54:06 EDT 2008

Sam Stokes wrote:

> It seems to me that with
> "Given an existing post 'lol internet'" # creates a post with that title
> "Then the page should include 'lol internet'" # assumes a post with that 
> title
> the assumptions are in line with what you'd naturally understand from 
> the English, whereas
> "Given an existing post 'lol internet'" # creates and stores in 
> @the_post
> "Then I should see the post title" # verifies @the_post matches what's 
> in the db
> seems to make more assumptions than are obvious from the English.
> In fact, couldn't one argue that the second example is redundantly 
> storing the post in two places (the database and @the_post)?  I think 
> this is what Aslak means by distinguishing "stateful" and "stateless" - 
> @variables are *extra* state, on top of the application state which must 
> change either way or you're not testing anything.

Thats true in that case. I also wouldn't do what you show in the second case. If I can get the 
result from the API or the database I would.

In my case I store data between states that I can't get anywhere else, or that tells me where to get 
the results from.

Jim Morris, http://blog.wolfman.com

More information about the rspec-users mailing list