Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模仿还是依赖注入?_Javascript_Node.js_Unit Testing_Dependency Injection_Mocking - Fatal编程技术网

Javascript 模仿还是依赖注入?

Javascript 模仿还是依赖注入?,javascript,node.js,unit-testing,dependency-injection,mocking,Javascript,Node.js,Unit Testing,Dependency Injection,Mocking,我已经编写了一个Node.js模块,它使用了fs模块,因此我认为要测试它,我应该让模块不使用它/使用模拟模块 在寻找实现这一目标的方法时,我偶然发现了两种方法: 依赖项注入:在运行测试时为我的模块提供一个假的fs模块,例如通过函数参数 函数main(…,fs) 模拟:在运行侵入流程的测试时使用另一个软件,当模块需要时,fs模块会给它一个不同的假模块(例如使用SinonJS) 我的理解正确吗?我怎么知道什么时候用哪种方法?谢谢

我已经编写了一个Node.js模块,它使用了
fs
模块,因此我认为要测试它,我应该让模块不使用它/使用模拟模块

在寻找实现这一目标的方法时,我偶然发现了两种方法:

  • 依赖项注入:在运行测试时为我的模块提供一个假的
    fs
    模块,例如通过函数参数
  • 函数main(…,fs)

  • 模拟:在运行侵入流程的测试时使用另一个软件,当模块需要时,
    fs
    模块会给它一个不同的假模块(例如使用SinonJS)
  • 我的理解正确吗?我怎么知道什么时候用哪种方法?谢谢