【问题标题】:when unit testing shelljs doesn't use my mocked filesystem but the real one当单元测试 shelljs 不使用我的模拟文件系统而是真正的文件系统时
【发布时间】:2018-09-04 15:20:19
【问题描述】:

在我的 node.js 应用程序中,我有一个函数应该在用户执行 http put 请求时重命名目录路径。 无论如何,这个函数使用 shelljs,当我手动测试它时它可以工作,但是当我尝试在我的模拟文件系统上用 mocha 进行测试时,shelljs 在我的真实文件系统上运行所有 shell 命令。

我该如何解决?

顺便说一句,我为此使用了 mock-fs,而且我对单元测试非常陌生。

谢谢

阿米特

【问题讨论】:

  • 这意味着 shelljs 启动了另一个不受此过程中的模拟影响的进程(正如预期的那样)。在单元测试中,通常需要模拟所有产生副作用的东西,包括第三方单元,shelljs 就是这样。

标签: node.js unit-testing mocking mocha.js shelljs


【解决方案1】:

我觉得ShellJS一般都兼容mock-fs(我在本地试过了,好像还可以)。这假设您在运行 mock-fs 的同一进程中运行 ShellJS 命令(否则,请遵从 estus 的回复)。

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 2013-11-09
    • 2018-08-07
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    相关资源
    最近更新 更多