我正在围绕Observables编写一些异步测试。我的测试正在通过,但我意识到这只是因为一些expect
匹配器实际上根本没有被调用。以下是其中一个示例。
是否有一种聪明的方法可以检查是否已调用所有expect
函数?
我知道我可以在它周围添加计数等,但想知道是否有一种Jasmine的方法。
let count = 0;
let t0 = performance.now();
let sub = observable.subscribe((items) => {
// before data initialized
if (count === 0) {
expect(items.length).toBe(0);
}
// after dataInitialized()
if (count > 0) {
expect(items.length).toBe(2);
sub.unsubscribe();
let t1 = performance.now();
console.log('dataInitialize() took: ' + (t1 - t0) + ' milliseconds');
}
count++;
});
我的测试就像:
describe( 'asdf', () => {
it('should initializeData()', async(() => {
const wasPromiseCreated = contentfulService.initializeData();
expect(wasPromiseCreated).toBeTruthy();
}));
it('should initializeData()', async(() => {
const wasPromiseCreated = contentfulService.initializeData();
expect(wasPromiseCreated).toBeTruthy();
}));
});
答案 0 :(得分:0)
Jasmine方式是一个完成的回调函数,它由框架传递给测试函数,一旦被调用,信号就会被执行。你可以根据一个计数器打电话给它
it('is async', function(done) {
// run assertions that increment counter and if (counter == #assertion) { done() }
});