关于速度在流星之前的每个setUp函数的混淆

时间:2016-01-04 15:41:58

标签: javascript unit-testing meteor jasmine meteor-velocity

我正在尝试使用velocity [1]和jasmine [2]在我的流星应用程序上实现测试。 我定义了一个名为'object'的集合(collections / object.js):

Objects = new Meteor.Collection('objects');

我实现了一个设置函数(tests / jasmine / server / unit / ObjectSpec.js):

describe('Objects', function () {
  'use strict';

  // set up
  beforeEach(function () {

    // 1 - backup all data
    MeteorStubs.install();

    // 2 - delete current 'Objects'-items
    Objects.remove({});

    // 3 - add test data
    Objects.insert({
       someProperty: 'data1'
    });

  });

然后我会运行实际测试(同一个文件):

  // actual tests
  it("should delete a specific object", function () {
    var selector = {someProperty: 'data1'};
    var selectedObject = Objects.findOne(selector);

    // will return 'Expected undefined not to be undefined.'
    expect(selectedObject).not.toBe(undefined);

    Meteor.call('deleteObject', selectedObject, function(error, id) {
        if (error)
            return alert(error.reason);
    });

    expect(Objects.findOne(selector)).toBe(undefined);
  });

之后,我在拆卸中恢复旧的应用程序状态(同一文件):

  // tear down
  afterEach(function () {
    Objects.remove({});
    MeteorStubs.uninstall();
  });

现在,在执行测试时,速度会让我:     预期未定义不得未定义。

我想知道,如果'beforeEach'-Function中的数据实际上会插入并在实际测试功能中可访问吗?另外,我尝试在测试函数中使用console.log()来显示当前数据,但它不会显示在浏览器控制台中。为什么呢?

[1] https://atmospherejs.com/velocity/html-reporter

[2] https://atmospherejs.com/sanjo/jasmine

0 个答案:

没有答案