我有以下简单的Jasmine测试...
//test.spec.ts
describe('Sample', function(){
it('Should do something', () => expect(true).toBe(true));
});
但是当我跑步时,我得到......
Error: 'expect' was used when there was no current spec, this could be because an asynchronous test timed out
这很好用......
describe('Sample', function(){
it('Should do something', function(){
expect(true).toBe(true);
});
});
答案 0 :(得分:3)
选中此playground
如果有这两个陈述
describe('Sample', function(){
it('Should do something',
() => expect(true).toBe(true));
});
describe('Sample', function(){
it('Should do something', () => {
expect(true).toBe(true));
}
});
他们导致不同的JS代码
describe('Sample', function () {
it('Should do something', function () { return expect(true).toBe(true); });
});
describe('Sample', function () {
it('Should do something', function () {
expect(true).toBe(true);
});
});
一个简单的声明,没有包装{}
被转换成return语句,我们在这里不需要
答案 1 :(得分:0)
我很确定你获得它的原因是箭头功能,它对范围的处理方式与常规匿名功能不同。
当你这样做时:
it('Should do something', function() {
expect(true).toBe(true);
});
该功能使用规格this
执行,但使用箭头功能时:
it('Should do something', () => {
expect(true).toBe(true);
});
this
不同。
易于检查,尝试:
it('Should do something', function() {
console.log("this is: ", this);
expect(true).toBe(true);
});
和
it('Should do something', () => {
console.log("this is: ", this);
expect(true).toBe(true);
});