Jasmine 规范 "it" 在异步 "beforeAll" 调用完成之前被调用
Jasmine spec "it" is called before async "beforeAll" calls done
我写了一个 Angular 2 应用程序,我想用 karma 的 jasmine 运行 对其进行单元测试。
我对 Jasmine 和所有这些东西都很陌生,所以这是我的第一个 angular 应用程序。
一切都是通过 npm 安装的。
在浏览器中测试 运行。
我使用 Karma 作为测试运行器。
版本:
- 茉莉花:2.4.1
- 业力:1.5.0
- Chrome: 56.0.2924
- OS: Mac OS X 10.12.3
问题:
我创建了一个套件,如下:
describe('Service with asyncCall', () => {
beforeAll((done) => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 8000;
new Service().asyncCall().then((result) => {
console.log(result);
done();
}
);
}
);
it(
'should be true',
() => {
console.log('test');
expect(true).toEqual(true);
}
);
}
asyncCall如下:
asyncCall() {
var out = new Promise(
(resolve) => {
setTimeout(
() => {
resolve('success');
},
2000
);
}
);
return out;
}
我希望输出类似于
...
success
test
...
但浏览器控制台的实际输出是
测试
成功
此外,测试失败并显示以下消息
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
请任何人帮助我,或指出正确的方向。
抱歉我的英语不太好...
谢谢。
编辑
为了确定,这不是问题所在,我将 jasmine.DEFAULT_TIMEOUT_INTERVAL 设置为 8000,但没有帮助。
好的,我想我找到了问题所在。从 angular 2 开始,我克隆了 QuickStart Seed。
作为新手,我不知道里面最多的文件是做什么用的,但现在我在karma-test-shim.js
.
中找到了jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
在我的代码中更改此值似乎没有效果,但更改此处的值解决了我的问题。
我写了一个 Angular 2 应用程序,我想用 karma 的 jasmine 运行 对其进行单元测试。 我对 Jasmine 和所有这些东西都很陌生,所以这是我的第一个 angular 应用程序。 一切都是通过 npm 安装的。 在浏览器中测试 运行。 我使用 Karma 作为测试运行器。
版本:
- 茉莉花:2.4.1
- 业力:1.5.0
- Chrome: 56.0.2924
- OS: Mac OS X 10.12.3
问题: 我创建了一个套件,如下:
describe('Service with asyncCall', () => {
beforeAll((done) => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 8000;
new Service().asyncCall().then((result) => {
console.log(result);
done();
}
);
}
);
it(
'should be true',
() => {
console.log('test');
expect(true).toEqual(true);
}
);
}
asyncCall如下:
asyncCall() {
var out = new Promise(
(resolve) => {
setTimeout(
() => {
resolve('success');
},
2000
);
}
);
return out;
}
我希望输出类似于
...
success
test
...
但浏览器控制台的实际输出是
测试 成功 此外,测试失败并显示以下消息
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
请任何人帮助我,或指出正确的方向。 抱歉我的英语不太好...
谢谢。
编辑
为了确定,这不是问题所在,我将 jasmine.DEFAULT_TIMEOUT_INTERVAL 设置为 8000,但没有帮助。
好的,我想我找到了问题所在。从 angular 2 开始,我克隆了 QuickStart Seed。
作为新手,我不知道里面最多的文件是做什么用的,但现在我在karma-test-shim.js
.
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
在我的代码中更改此值似乎没有效果,但更改此处的值解决了我的问题。