我想用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
- 我得到了相同的“找不到模块”。
建议?
答案 0 :(得分:0)
tns test
命令用自定义条目替换常规应用程序的入口点,然后在测试设备上创建并启动应用程序包。没有npm“dev-dependencies”将存在于应用程序包中,因此sinon
安装为一个将不会与您的应用程序打包在一起,即使这是测试配置。
安装sinon
作为生产依赖项,以便在您的应用程序中使用它。
npm install sinon --save