我有一个写得不好的类,只有在短暂的超时后才能初始化。 (它依赖于第三方加载,因此提供修改代码毫无意义。谢谢) 然而,它需要进行单元测试。
我现在所拥有的是以下结构:
describe('my tests', function() {
var timeoutPromise = function () {
/... return promise .../
}
it('test1', function (done) {
timeoutPromise.then(function() {
expect(...);
done();
});
});
it('test2', function (done) {
timeoutPromise.then(function() {
expect(...);
done();
});
});
});
这样我确保所有测试在几毫秒超时后运行。 是否有办法使整个描述块仅在超时后运行? 像
这样的东西describe('my tests', function(done) {
it(...);
it(...);
done();
}
答案 0 :(得分:0)
没有describe()
级done
回调。来自Jasmine 2.5 docs:
对
beforeAll
,afterAll
,beforeEach
,afterEach
和it
的调用可以采用可选的单个参数,当异步工作是完整。
但是,您可以在与beforeEach()
所属的it()
块相同的级别describe('your tests', function() {
var timeoutPromise = new Promise(function(resolve, reject){
setTimeout(resolve, 4000);
});
// execute timeoutPromise and wait for it to resolve ...
beforeEach(function(done) {
timeoutPromise.then(function() {
// timeout resolved, test initialization in this block done
done();
});
});
// for all following it()s the beforeEach() needs to complete
it('test1', function () {
expect(...);
});
it('test2', function () {
expect(...);
});
// ...
});
进行一次初始化。
以下代码将满足您的要求。它是内联评论:
store.dispatch(responseData)