我正在尝试使用 jasmine 编写一些测试用例(第一次)
describe("Widget App core logic", function () {
WAPP.widgets = [];
addwidget 将在我的 WAPP.widgets 数组中添加一个小部件
WAPP.addWidget('testRecord', 'testRecordContent');
it("added", function () {
expect(WAPP.widgets.length).toEqual(1);
});
删除小部件将删除相同的小部件
WAPP.removeWidget('1');
it("record removed correctly", function () {
expect(WAPP.widgets.length).toEqual(0);
})
在编写第二个规范后,我的第一个规范失败了,因为它显示 WAPP .widgets 是空的。即使在第一个规范的时候 WAPP.widgets
中有一个值最佳答案
这里的问题是你不应该在它
之外有测试代码。 it
之外的代码在执行所有测试用例之前运行一次。在您的案例中可能发生的情况是,您甚至在测试开始之前就删除了所有小部件。
你的测试代码应该是这样的:
describe("Widget App core logic", function () {
beforeEach(function () {
WAPP.widgets = [];
});
it("added", function () {
WAPP.addWidget('testRecord', 'testRecordContent');
expect(WAPP.widgets.length).toEqual(1);
});
it("record removed correctly", function () {
WAPP.addWidget('1', '1');
WAPP.removeWidget('1');
expect(WAPP.widgets.length).toEqual(0);
})
});
请注意,您的测试代码应该是自包含的,所有初始化都应该在 it
或 beforeEach
中完成。
关于javascript - 在 "it" block 之外运行代码会破坏我的 Jasmine 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227922/