在使用Promises的Jasmine测试中结合挂起和完成

时间:2017-02-15 17:16:34

标签: javascript jasmine tdd

所以我需要在运行测试之前根据promise返回的特定条件运行Jasmine测试。由于似乎没有办法用Promises动态排除描述,我正在检查promise结果,然后运行一些expect或者只调用done()。这不是理想的,因为仅使用done()进行测试会导致"SPEC HAS NO EXPECTATIONS",但如果我在测试不应该运行的情况下使用pending()那么测试就会失败,因为没有在超时内被调用done()。 我当前的实现是(此函数从具有特定testing_case的描述中调用):

function checkOptions(testing_case) {
for (var key in cases_expectations[testing_case]) {
    (function (case, expectation) {
        it(case + " should be " + expectation, function (done){
            this.is.a.function.then(function(result) {
                var current_case = result.case;
                if (current_case !== testing_case) {
                    done();
                } else {
                    this.is.another.function(current).then(function(result) {
                        expect(result).toBe(expected);
                        done();
                    }, function(error) {
                        expect().toBeDefined();
                        done();
                    });
                }
            }, function(error) {
                expect().toBeDefined();
                done();
            });
        })  
    })(key, cases_expectations[testing_case][key]);
}
}

两个问题:

  • 我如何才能将pending()done()合并?

  • 有没有办法在承诺中运行描述?

0 个答案:

没有答案