使用Jasmine进行数据库集成测试

时间:2014-02-19 15:31:46

标签: javascript integration-testing jasmine

我想保证在Jasmine集成测试之后关闭与数据库的连接。这就是我目前的情况 - 它会确保数据库连接正确关闭吗?

"use strict";

describe("MyCtorFunction", function () {

  describe("myMethod", function () {
    var _db = null,
        _testContext = null;

    beforeEach(function () {
      _testContext = {};
      new DbHelper().openConnection(function (err, dbConnection) {
        if (err) {
          throw err;
        }

        _db = dbConnection;
      });

      waitsFor(function () {
        return _db;
      }, "establishing a connection to the database.", 5000);
    });

    afterEach(function () {
      waitsFor(function () {
        return _testContext.assertions.callCount === 1;
      }, "waiting for the assertions to be called.", 5000);

      runs(function () {
        if (_db) {
          _db.close();
          _db = null;
        }
      });
    });

    it("should do something", function () {
      runs(function () {
        //arrange
        _testContext.assertions = assertions;
        spyOn(_testContext, "assertions").andCallThrough();

        //act (_testContext.assertions invoked as callback)
        new MyCtorFunction(_db).myMethod(_testContext.assertions);

        //assert
        function assertions(err, config) {
          expect(config).toNotBe(null);
          //etc.
        }
      });
    });
  });
});

1 个答案:

答案 0 :(得分:0)

不,它假设如下:

  • 测试期间网络连接不会丢失
  • 断言中没有语法或引用错误
  • andCallThroughmyMethod
  • 中没有错误