On Sat, Oct 18, 2008 at 6:34 PM, Jake Benilov <[EMAIL PROTECTED]> wrote:
> David,
>
> Thanks for your reply; however I probably wasn't very clear in my
> explanation. What I am really trying to do is to create a builder for
> example group objects, without automatically adding the example groups to
> the rspec runner when the builder code is invoked.
>
> As an example, when I call the following code:
>
> describe "a group" do
> examples = Class.new(Spec::Example::ExampleGroup).describe("example")
> examples.it "should not be added to the outer group" do
> true.should be_false
> end
> end
When you create a subclass of Spec:Example::ExampleGroup, it
automatically gets registered. You want to make sure you unregister it
so rspec's Runner doesn't try to run it. Try this:
describe "a group" do
example_group = Class.new(Spec::Example::ExampleGroup)
example_group.unregister
examples = example_group.describe("example")
examples.it "should not be added to the outer group" do
true.should be_false
end
end
>
> I get:
> ~~~
> 1)
> 'example should not be added to the outer group' FAILED
> expected false, got true
>
> Finished in 0.027012 seconds
>
> 1 example, 1 failure
> ~~~
> This is probably expected, but what I really want is that the "examples"
> example group is NOT picked up by rspec. I suppose that I need to stay away
> from the "it" and "describe" methods... right?
>
> Regards,
> Jake
>
> On Sat, Oct 18, 2008 at 6:50 PM, David Chelimsky <[EMAIL PROTECTED]>
> wrote:
>>
>> On Sat, Oct 18, 2008 at 2:13 PM, Jake Benilov <[EMAIL PROTECTED]> wrote:
>> > Hi,
>> >
>> > I am trying to code an application that is based on Rspec; I am
>> > programmatically building examples, and launching the runner with a
>> > custom
>> > formatter. Here are the code snippets from my app:
>> >
>> > Launching the runner:
>> >
>> > example_groups =
>> > test_expectation.example_groups_for(system_state)
>> >
>> > @output = StringIO.new
>> > options = Spec::Runner::OptionParser.parse(["--format",
>> > "RAutotest::Runner::Formatter"], @output, @output)
>> > example_groups.each {|example_group|
>> > options.add_example_group(example_group) }
>> >
>> > Spec::Runner::CommandLine.run(options)
>> >
>> > Building the example groups:
>> >
>> > examples =
>> > Class.new(Spec::Example::ExampleGroup).describe("Statistics")
>> > @expectations.map do |expectation|
>> > examples.it examples.description do
>> > actual_stats_counters.should expectation
>> > end
>> > end
>> > examples
>> >
>> > This is working fine, except for one problem. When I am writing examples
>> > for
>> > my app (also using rspec), the examples that are generated within my
>> > application (the inner examples, so to say) are being added to the
>> > application's examples (the outer examples).
>> > This means that if inner expected failures are causing my outer examples
>> > to
>> > fail.
>> >
>> > How is it possible for me to verify expected failures without causing my
>> > examples to fail?
>>
>> If I understand your question correctly, you can do this:
>>
>> lambda {
>> # stuff that should fail
>> }.should raise_error(Spec::Expectations::ExpectationNotMetError)
>>
>> See
>> http://rspec.rubyforge.org/rspec/1.1.8/classes/Spec/Matchers.html#M000434
>> for more info.
>>
>> Cheers,
>> David
>>
>> >
>> > Thanks in advance,
>> > Jake
>> >
>> > _______________________________________________
>> > rspec-users mailing list
>> > [email protected]
>> > http://rubyforge.org/mailman/listinfo/rspec-users
>> >
>> _______________________________________________
>> rspec-users mailing list
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
>
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
--
Zach Dennis
http://www.continuousthinking.com
http://www.mutuallyhuman.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users