Javascript 在“it”块之外运行代码会破坏我的Jasmine测试
我第一次尝试使用jasmine编写一些测试用例 addwidget将在我的WAPP.widgets数组中添加一个小部件Javascript 在“it”块之外运行代码会破坏我的Jasmine测试,javascript,jasmine,Javascript,Jasmine,我第一次尝试使用jasmine编写一些测试用例 addwidget将在我的WAPP.widgets数组中添加一个小部件 WAPP.addWidget('testRecord', 'testRecordContent'); it("added", function () { expect(WAPP.widgets.length).toEqual(1); }); 移除小部件将移除相同的小部件 WAPP.removeWidget('1'); it("reco
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中有一个值,但这里的问题是您不应该在它之外有测试代码。它之外的代码在执行所有测试用例之前运行一次。在您的案例中可能发生的情况是,您甚至在测试开始之前就删除了所有小部件 您的测试代码应该是这样的:
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内部完成,或者使用beforeach完成。这里的问题是,您不应该在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内部完成,或者使用BEFOREACH完成。您的代码可以同步运行吗?jasmine文档对此有何评论?你的完整代码是什么?这两个it调用位于descripe函数中?不删除和添加这两个it调用位于不同的descripe中,请尝试在同一descripe中使用它们。看来应该这样用我看到的文件,不起作用。你能告诉我一些文件吗?这些文件保证你的代码同步运行?jasmine文档对此有何评论?你的完整代码是什么?这两个it调用位于descripe函数中?不删除和添加这两个it调用位于不同的descripe中,请尝试在同一descripe中使用它们。看来应该这样用我看到的文件,不起作用。你能给我指一下文件吗?事实上,这是最好的建议!我真不敢相信我已经玩了这么久,移动代码,把时间浪费在文档上。突然间,一切都如预期的那样运转。确保所有东西都在里面,这是有史以来最好的建议!我真不敢相信我已经玩了这么久,移动代码,把时间浪费在文档上。突然间,一切都如预期的那样运转。确保所有东西都在里面