【发布时间】:2019-04-20 04:30:23
【问题描述】:
我正在尝试测试一个使用inversify 进行依赖注入并使用@inject() 装饰参数的类。
@injectable()
export class SaveManager {
constructor(
@inject(INJECTABLE.STORAGE) storage: IStorage, //Uncovered Line: 15
@inject(Configuration) configuration: Configuration //Uncovered Line: 16
) {
this.storage = storage;
this.configuration = configuration;
}
}
但是这个类的分支覆盖率告诉我:
@inject(INJECTABLE.STORAGE) storage: IStorage, //Uncovered Line: 15
@inject(Configuration) configuration: Configuration //Uncovered Line: 16
这些行不包括在内。
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line
SaveManager.ts | 100 | 66.67 | 100 | 100 | 15,16
我应该在这里测试什么以实现 100% 的覆盖率以及如何测试构造函数参数装饰器?
我知道我可以使用container.get(),但我也应该可以测试装饰器。
【问题讨论】:
-
似乎测试用例覆盖工具存在一个未解决的问题:github.com/istanbuljs/istanbuljs/issues/70,除非您使用的是其他工具。
-
@DipenShah 根据那个未解决的问题 - 这取决于版本,但我升级了 mocha - chai 和所有东西 - 仍然遇到 % Branch non-cover。我什至尝试注入空/未定义的组合,它不会下降
标签: javascript typescript unit-testing mocha.js jestjs