On Mar 15, 2011, at 4:49 AM, Shamaoke wrote: > On 14 мар, 03:16, Myron Marston <myron.mars...@gmail.com> wrote: >> On Mar 11, 1:17 pm, Justin Ko <jko...@gmail.com> wrote: >> >> >> >>> On Thu, Mar 10, 2011 at 2:32 AM, Shamaoke <shama...@hotmail.com> wrote: >>>> Hi. >> >>>> Why doesn't the following filter work? >> >>>> ~~~ >>>> # encoding: utf-8 >>>> # ./example_spec.rb >> >>>> RSpec.configure do |config| >>>> config.filter = { >>>> unless: :condition_acceptable >>>> } >>>> end >> >>>> describe 'some code' do >>>> it 'does one', if: :condition_acceptable do >>>> end >> >>>> it 'does two', unless: :condition_acceptable do >>>> end >>>> end >>>> ~~~ >> >>>> ~~~ >>>> $ rspec example_spec.rb >>>> No examples were matched # instead of 'some code does two' >>>> ~~~ >> >>>> Thanks. >> >>>> Debian GNU/Linux 5.0.7; >>>> Ruby 1.9.2; >>>> RSpec 2.5.0. >>>> _______________________________________________ >>>> rspec-users mailing list >>>> rspec-us...@rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/rspec-users >> >>> If :condition_acceptable evaluates to false, your example will run. If you >>> are looking to "match" key/values, don't use :if or :unless >> >>> _______________________________________________ >>> rspec-users mailing list >>> rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users >> >> There are built-in `:if` and `:unless` filters. You probably don't >> want to override them. They work how you would normally expect. >> >> http://relishapp.com/rspec/rspec-core/v/2-5/dir/filtering/implicit-fi... >> >> HTH, >> Myron
> Thanks for the clarification. I was led astray by the example from the > RSpec Book where the network dependent code was described*. In that > example the default if filter was overriden using the Proc object and > it returned true or false depending on the network condition. Now I > understand that code could be changed like the following: > > ~~~ > class Network > def self.available > true # or false depending on the network condition > end > end > > describe 'some network dependent code' do > it 'does one', :if => Network.available do # works if the network is > available only > end > > it 'does two' do > end > end > ~~~ > ________ > * The RSpec Book, chp. 16, p. 238. Unfortunately, :if and :unless were added as special cases after rspec-2.0 and The RSpec Book were released :( Cheers, David _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users