Hi Bryan -
The way mockery suggests you handle this issue is by calling
mockery.registerAllowable("modulePath",true);
Where the second argument is "unhook", a signal which tells
mockery.deregisterAll()
to remove the module from the node module cache.
Unfortunately, there's actually a bug in mockery.js which prevents the node
module cache from being cleared.
I've committed a fix to my fork: https://github.com/amallavarapu/mockery
Details of the bug are in this pull request:
https://github.com/mfncooper/mockery/pull/6
I've also added functions to ensure ALL modules are cleared from the module
cache after tests are run in this commit. Just call:
mockery.registerAllAllowableStart(true)
In the before() block before you load the modules required for the test.
Then call:
mockery.registerAllAllowableEnd();
mockery.deregisterAll();
In the after() block. This removes from the cache all the modules loaded
between the start and end calls.
Aneil
On Monday, December 19, 2011 6:33:55 PM UTC-8, Bryan Donovan wrote:
>
> I'm currently using Mocha with Mockery for unit testing. I can't figure
> out a good way to deal with this situation:
>
> Test A requires a real module.
> Test B and mocks that same module.
>
> Running Test A in isolation passes.
> Running Test B in isolation passes.
> Running both at once: Test B fails every time.
>
> In the third scenario, Test B fails because the real module has already
> been loaded (even if Test A hasn't run yet).
>
> This occurred with Gently as well, and with nodeunit instead of Mocha, so
> I don't think it's an issue with Mockery or Mocha. But I'm still guessing
> there's an easy solution to what is a trivial problem in other languages,
> and I'm just missing it. I'm fine with using a different mocking library
> if that's the solution, as long as it's simple to use and doesn't require
> me to pollute source files with weird statements like Gently does.
>
> I have a repeatable set of source code and tests here:
> https://github.com/BryanDonovan/nodejs-mock-test
>
> Any advice would be greatly appreciated.
>
>
> Thanks,
>
> Bryan
>
>
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en