[rspec-users] Override tests (of a core rails app from a plugin)

Justin Ko jko170 at gmail.com
Sat Oct 1 16:17:16 EDT 2011

On Oct 1, 2011, at 7:03 AM, Felix Schäfer wrote:

> Hello,
> Is there some way to override a spec and more specifically parts of spec, ideally down to a specific example? I've been looking and googling for something like this, but I haven't found a good strategy for it.
> The use-case is for a rails app that supports plugins, and those plugins may also tweak the behavior of core objects. For example (and it is a simplistic and bad example, but bear with me): Suppose a User object that has a boolean attribute show_mail_address that controls if the mail address of the user can be shown publicly, and that this defaults to true in the core app, but a security-savvy user of the software doesn't want that and creates a plugin to change the default to false. Running the core tests with the plugin will fail because the default won't be the one the tests expect. Is there any way to selectively override examples/tests/groups and/or extend tests (in the case the plugin adds functionality to the core object)?
> Thanks,
> Felix
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

Specs do not over-ride each other, so I can't think of an easy to do what you're trying to do. With that said, I have never come across a situation like this because usually the app has one or the other. Shouldn't the user delete their own code that your plugin accomplishes after they install it? Or, maybe your plugin overrides their core functionality, but doesn't provide tests - in which case it's up to the user to adjust their tests to your plugin.

More information about the rspec-users mailing list