NativeScript - 在单元测试时无法导入模拟库

时间:2017-10-27 18:25:14

标签: unit-testing nativescript sinon

我想用mocks为我正在开发的应用程序编写一些单元测试。

  • tns create test_ns --tsc
  • npm install -D sinon # library for mocking; I can't import it
  • npm install -D underscore # a js lib that I can import, for reference
  • tns test init --framework=jasmine
  • tns test android

这是test/example.js

var sinon = require('sinon')
describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});

这是我的karma.conf.js link

tns test命令失败并显示Error: com.tns.NativeScriptException: Failed to find module: "sinon", relative to: app/tns_modules/

我也安装了karma-sinon包 - 没有区别。

我在NativeScript repo #1956上遇到过这个问题,他们建议在另一个模块中设置有问题的npm包然后导入它。我尝试了这个,但require('sinon')仍然咆哮着同样的错误。

我不坚持使用sinon - 我只需要一个模拟js库。我试过testdouble - 我得到了相同的“找不到模块”。

建议?

1 个答案:

答案 0 :(得分:0)

tns test命令用自定义条目替换常规应用程序的入口点,然后在测试设备上创建并启动应用程序包。没有npm“dev-dependencies”将存在于应用程序包中,因此sinon安装为一个将不会与您的应用程序打包在一起,即使这是测试配置。

安装sinon作为生产依赖项,以便在您的应用程序中使用它。

npm install sinon --save