我试图了解如何使用Jasmine进行JS中的嵌套承诺测试。这样做的大概方案是什么? 我有一个代码,代表小精灵的动作。这个想法是,检查小精灵对不同宝石的反应,例如以我为例。我的职能包括连锁承诺。有人可以给我一个提示,我如何使用Jasmine测试我的代码。我已经读过,我需要使用茉莉花时钟,但我不知道该怎么做。
我已经编写了一个测试函数,但是它仅检查该函数的一半(在“ then”处停止)
要测试的功能:
function pirop(elf) {
return new Promise((resolve => {
setTimeout(() => {
bothLegsIn(elf);
bothHandsUp(elf).then(() => {
bothLegsOut(elf);
bothHandsDown(elf);
});
resolve(elf);
}, elf.danceSpeed);
}));
}
测试功能:
it("Pirop: legs in, hands up, then legs out, hands down", function(done) {
jasmine.clock().install();
let elf = {
danceSpeed: 10,
stance: [0, 0, 0, 0],
}
pirop(elf);
jasmine.clock().tick(200);
expect(elf.stance).toEqual([1, 1, 1, 1]); //test function successfully check this position, but doesn't move on
jasmine.clock().tick(40);
expect(elf.stance).toEqual([0, 0, 0, 0]); //still stays untested
jasmine.clock().uninstall();
});
初始姿势(姿势)为[0,0,0,0]。最终是一样的。 “站起来,举起手来”之后的立场是[1,1,1,1]。所以我需要在一项测试中测试两种姿势。