1

我正在尝试使用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中有一个值

4

1 回答 1

4

这里的问题是您不应该在it. 外部的代码在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);
  })    

});

请注意,您的测试代码应该是独立的,所有初始化都应该在itor with内完成beforeEach

于 2012-09-01T13:22:13.580 回答