Awesome answer.
I have being testing the Given/When/Then framework but the Then prints out 
very ugly so I do not think I will use it.

Your solution is good, I thought that doing several expectations inside an 
'it' was considered bad style.
But I think I understand the general idea, what I really want to check is 
the fact that it has only one page and this high level check can be 
decomposed on these small checks in this case. 

Thank you very much.

On Wednesday, January 30, 2013 4:24:01 PM UTC+9, Myron Marston wrote:
>
> On Jan 29, 10:38 pm, [email protected] wrote: 
> > It seems that going forward 'its' is gonna be deprecated. 
> > I would like to know what is the best way to replicate its behaviour. 
> > 
> > For instance I have this: 
> > 
> >  context 'new article' do 
> >        subject(:article) { Article.new } 
> >        its(:for_magazine?) { should be_false } 
> >        its(:total_pages) { should == 1 } 
> >        its(:current_page_number) { should == 1 } 
> >        its(:has_next_page?) { should be_false } 
> > end 
> > 
> > if I change to somethig like 
> >  it { expect(article.for_magazine?).to be false } 
> > 
> > it prints out   'new article'  should be false 
> > Which makes no sense 
> > 
> > if I do 
> > 
> >  context "for magazine?" do 
> >     it ….. 
> >  end 
> > 
> > prints well but is very verbose 
> > 
> > is there any other alternative? 
>
> Here's what I wrote about `its` recently when asked on Twitter about 
> it: 
>
> https://gist.github.com/4503509 
>
> There's already a gem that provides `its` plus some additional 
> features: 
>
> https://github.com/dnagir/its 
>
> ...so you're welcome to use that if you feel like you need this 
> feature. 
>
> As for how I'd approach this without using `its`...that's hard to say 
> without seeing the bigger picture of what the behavior of `Article` is 
> and what role it plays in your system.  I might do something like 
> this, though: 
>
> describe Article do 
>   context 'when instantiated with no arguments' do 
>     it 'is not for a magazine' do 
>       expect(Article.new).not_to be_for_magazine 
>     end 
>
>     it 'has only one page' do 
>       article = Article.new 
>       expect(article.total_pages).to eq(1) 
>       expect(article.current_page_number).to eq(1) 
>       expect(article).not_to have_next_page 
>     end 
>   end 
> end 
>
> Maximizing terseness is not one of the primary things I aim for when I 
> write specs. 
>
> HTH, 
> Myron 
>

-- 
You received this message because you are subscribed to the Google Groups 
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msg/rspec/-/Z_CSA9BxdV4J.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to