我想向学生提问,定义运营商的排名(+
,/
,-
,*
,^
)。
我使用的方法要求我使用exports.function_name = function() 为了使spec文件能够导入它。
但是,我希望学生不必使用exports.function,因为这不是他们在编辑器中所做的。
因此,我需要找到一种有效的方法来包装学生输入的代码。这就是我到目前为止(src文件:../src/C3Q2.js
):
exports.StudentSolution = function()
{
var operators = {
"^": 4,
"*": 3,
"/": 2,
"+": 1,
"-": 0,
};
return operators;//This works but I dont want the student to do this
//extra step, the only thing they should have to do is define the variable
//operators
};
我正在测试src文件的文件如下(spec文件):
var calculator = require("../src/C3Q2.js");
describe("precedence", function ()
{
it("check precedence", function ()
{
var solution = calculator.StudentSolution();
var product = solution["^"];
expect(product).toBe(4);
});
});
这有效,但我希望学生只需要定义运算符变量。是否有更有效的方法来自动化和包装函数?
答案 0 :(得分:0)
我不确定我是否完全理解您的问题,但您可以像这样直接导出对象;
exports.StudentSolution = {
"^": 4,
"*": 3,
"/": 2,
"+": 1,
"-": 0,
};
这样你的测试可以像这样引用它;
var calculator = require("../src/C3Q2.js");
describe("precedence", function() {
it("check precedence", function() {
var product = calculator.StudentSolution["^"];
expect(product).toBe(4);
});
});
这将删除"额外步骤"这个功能,是你的意思吗?