Jasmine:TypeError - Binary8不是构造函数

时间:2017-07-24 19:00:29

标签: javascript jasmine

我正在尝试使用Jasmine在JavaScript中测试一组原型。但是我一直收到以下错误:TypeError: Binary8 is not a constructor。原型的代码如下所示:

function Binary8(value) {
   // assert(value < 255, "value must be between 0 and 255");
    this.storage = new Uint8Array(1);
    (this.storage)[0] = value;
    this.value = function (){return (this.storage[0])};
}

当我在JS BIN等工具中执行var temp = new Binary8(0x16);var temp2 = new Binary8(18);时,它可以完美运行。但是,当我尝试在茉莉花中使用代码时,我得到了前面提到的错误。 有人可以帮我理解,有什么不对吗?

侧面评论以上是原型定义及其定义的文件的摘录。当我在JS Bin中测试时,我为Jasmine

加载了完整的内容和相同的内容

规范文件:

describe("Binary8 TEST", function() {
    var Alert = require('../../../cc-helpers.js');
    var Binary8 = require('../../../finite_fields/binary8');
    var BinaryTable =  require('../../../finite_fields/binary8_table.js');



  beforeEach(function() {
      console.log("New test");
  });

  it("Add two numbers", function() {
      var first_field = new Binary8(0x14); // 0d20 =  0x0001 0100
      var second_field = new Binary8(0x20); // 0d32 = 0x0010 0000
      // --------------------
      // Expect value:      |
      // 0x0001 0100        |
      // ^                  |
      // 0x0010 0000        |
      // 0c0011 0100 = 0d52 |
      // --------------------
      var result = (ff_add(first_field, second_field)).value() == 52;
      expect(result).toBe(true);
  });
});

我通过执行jasmine binary8spec.js

来运行测试

1 个答案:

答案 0 :(得分:2)

问题的解决方案是将module.exports = Binary8;添加到Binary8定义的末尾。但是,未注册自由功能。