我正在尝试用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运行测试

最佳答案

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

09-10 12:12