This doesnt work in practice because you might want to use different test
doubles for different tests, there are several ways to mock module
dependencies, on option is to use vm.runInNewContext

I did a module for this

https://github.com/jfromaniello/mockuire

it is like commonjs's require, but you can pass dependencies when you
require a module.

El domingo, 20 de enero de 2013, Athan Clark escribió:

> Hello everyone. I'd like to make unit testing a practice difficult to
> evade in Node.js. One of the requirements, though, is that you need to be
> able to test a module's functionality independently of it's dependencies
> (say that 10 times fast!). My idea is to make node more flexible in the
> directories it chooses to look for node modules by providing an alternative
> "mode" for it to look in - ie if *NODE_MODE* is set to "test", then npm
> will first try to look in ./test_node_modules for a package before looking
> in ./node_modules. That way we can provide *alternative *modules for a
> package - ie mock ones. Or if you were trying to make a package that was
> compatible with similar modules, you could have a 3rd party testing
> package, like a simple blog, that uses the similar package in one mode,
> then your package in another.
>
> Imagine being able to do a *`npm run-scripts test --deep`*, and then see
> each and every module complete a unit test before progressively walking up
> the dependance tree making scenario tests along the way. It makes my
> continuous integration senses salivate.
>
> What do you all think? Could someone could direct me to where/how npm /
> node implements `require();`? Where should I start?
>
> Thanks in advance!!
>
> --
> 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]<javascript:_e({}, 'cvml', '[email protected]');>
> To unsubscribe from this group, send email to
> [email protected] <javascript:_e({}, 'cvml',
> 'nodejs%[email protected]');>
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>

-- 
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

Reply via email to