【发布时间】:2019-08-28 11:07:30
【问题描述】:
我刚开始学习 TypeScript,并尝试了一些带有 jest 单元测试的简单应用程序(使用 ts-jest):
简单的 app.ts 模块:
function greet(person: string): string {
return `Hello, ${person}`;
}
exports.greet = greet;
简单的 app.spec.ts 代码:
const greetObject = require('../app');
greetObject.greet(1);
describe('greet function', () => {
it('should return greeting', () => {
expect(greetObject.greet('Dude')).toEqual('Hello, Dude');
});
it('should throw type exception', () => {
const spy = jest.spyOn(greetObject, 'greet');
greetObject.greet(1);
/** @todo what should happen ? */
});
});
问题是:我是否应该收到类型错误?事实上,我在这里没有收到任何错误。
但是如果我在 app.ts 文件中使用错误的参数类型调用 greet,整个测试套件就会失败。
我在 TypeScript 单元测试中遗漏了什么吗?
UPD. 将 require 转换为 ES6 导入。 TypeScript 诊断现在可以工作了,但我仍然不知道我是否可以对错误类型做任何事情并测试这些情况。任何建议表示赞赏。
【问题讨论】:
-
在我的情况下没有帮助,
ts-jest仍然忽略传递无效类型,即使我正在使用 ES6 导入((你能显示你的配置文件吗?
标签: typescript unit-testing jestjs ts-jest