我正在尝试使用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
答案 0 :(得分:2)
问题的解决方案是将module.exports = Binary8;
添加到Binary8
定义的末尾。但是,未注册自由功能。