我正在尝试用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
定义的末尾。但是,免费功能未注册。