【发布时间】:2015-05-05 11:25:36
【问题描述】:
取消注释最后一个规范。一切都崩溃了……为什么?
describe('test', function() {
var index = 1;
it('test 1', function() {
expect(index).toBe(1);
index++;
});
it('test 2', function() {
expect(index).toBe(2);
index++;
});
it('test 3', function() {
expect(index).toBe(3);
index++;
});
it('test 4', function() {
expect(index).toBe(4);
index++;
});
it('test 5', function() {
expect(index).toBe(5);
index++;
});
it('test 6', function() {
expect(index).toBe(6);
index++;
});
it('test 7', function() {
expect(index).toBe(7);
index++;
});
it('test 8', function() {
expect(index).toBe(8);
index++;
});
it('test 9', function() {
expect(index).toBe(9);
index++;
});
it('test 10', function() {
expect(index).toBe(10);
index++;
});
// it('test 11', function() {
// expect(index).toBe(11);
// index++;
// });
});
感谢@PWKad 指出当测试超过 10 次时会发生这种情况。
【问题讨论】:
-
它总是按照我声明的顺序运行。我唯一的建议是将真正的套件减少到显示问题的最低限度并在问题中发布该代码。
-
我没有大量使用 jasmine 的经验,但是对于一般的单元测试,你不应该期望它们以任何特定的顺序运行 - 它们是 unit i> 毕竟是测试。如果特定测试需要特定条件,则应在该测试的设置/拆除中。
-
我希望框架作者会告诉您不要依赖测试的顺序,因为这是一个实现细节,可能会随任何版本而改变。我很欣赏你上面的评论,但我怀疑依赖执行顺序会给你带来痛苦,代价是没有“丑陋”的测试。通常,您的规格可以有一个“背景”,您可以在其中进行设置。
-
@SamHolder 同意,但是有超过 10 个测试会触发随机顺序。为什么是 10+?
-
使用tryjasmine.com 中包含的所有 11 个规范运行它对我来说效果很好。必须特定于 jasmine 版本。我同意很高兴知道是什么原因造成的,但我仍然不会依赖特定的测试顺序。
标签: javascript unit-testing jasmine karma-jasmine