我刚开始学习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.转换为ES6导入。TypeScript诊断现在正在工作,但我仍然不知道我是否可以用错误的类型做任何事情,并测试这些情况。如有任何建议,敬请见谅。
发布于 2019-04-07 17:01:15
是否收到类型错误?
这里不行。
您正在测试的是TS文件的JS输出。
TS错误是编译时错误。
我仍然不知道我是否能做任何错误的类型,并测试这些情况。
使用TypeScript在运行时不进行类型检查,因为运行时不是TypeScript,而是JavaScript。
如果要验证接收到的某个对象,则应该实现实际的检查功能。
也许会有帮助:
https://stackoverflow.com/questions/55554126
复制相似问题