On Tuesday, August 13, 2013 11:00:00 AM UTC-7, Hongli Lai wrote:
> I have tests that basically look like this:
>
> module Foo
> shared_examples_for "foo" do
> it "works" do
> true
> end
> end
>
> describe "bar" do
> it_behaves_like "foo"
> end
> end
>
> The reason why the RSpec commands are inside "module Foo" is because my
> namespace name is very long ("PhusionPassenger"), and I want to avoid
> prepending the namespace name to every class I refer to. Since a recent
> RSpec version, I'm getting a "Accessing shared_examples defined across
> contexts is deprecated" warning. How do I avoid this warning while still
> avoiding prepending my namespace before every class reference?
>
> I cannot just "include PhusionPassenger" in the global context. That will
> pollute the global namespace with all sorts of classes, potentially
> overwriting existing ones.
>
Hey Hongli,
In RSpec 2.14 we added a feature that allows users to scope shared example
groups to the context they are declared in:
http://myronmars.to/n/dev-blog/2013/07/rspec-2-14-is-released#core_shared_example_groups_are_scoped_to_the_context_they_are_defined_in
For backwards compatibility with other 2.x releases, it still supports
using a shared example group from outside the scope if it cannot find it in
the current scope, and prints a deprecation warning in this case.
Unfortunately, there was a slight bug in this that caused the warning to
be wrongly printed in your case. This was reported a bit ago and we have a
fix ready:
https://github.com/rspec/rspec-core/pull/1023
I plan to cut another 2.14.x patch release soon (probably in the next day
or two) with this fix in it. Sorry for the trouble.
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/msgid/rspec/35febb0e-c47f-4373-9ee5-06a83fbddc24%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.