我试图通过在exercism.io上做一些练习来学习javascript (它提供了我们需要通过的预先编写的测试)。它进行了一段时间,但通过最近的练习,我似乎无法弄清楚测试是如何工作的。
该练习的目的是编写一个程序,计算给定字符串在另一个字符串中出现的次数。测试文件的外观如下:
var words = require('./word-count');
describe("words()", function() {
it("counts one word", function() {
var expectedCounts = { word: 1 };
expect(words("word")).toEqual(expectedCounts);
});
// more skipped tests
});我做的第一件事是创建word-count.js文件,但我不知道该文件中的代码需要如何格式化/设置才能被规范文件读取。在浏览了本教程之后,我设置了如下word-count.js:
exports = function(str){}然而,这个(以及我尝试过的其他一切)给了我错误
1) words() counts one word
Message:
TypeError: object is not a function
Stacktrace:
TypeError: object is not a function
at null.<anonymous> (/home/sheeka/exercism/javascript/word-count/word-count_test.spec.js:6:12)我不明白这个错误,也不明白它在寻找什么。我也不明白测试是如何工作的,因为在我看来,它不像是spec文件正在调用word-count.js中的任何函数或变量
任何帮助理解这一点,或指出我可以使用的资源方向,以解决这一点,将不胜感激。我确实尝试过运行谷歌搜索,但我发现的一切看起来都太先进了。
发布于 2015-06-18 15:16:09
分配exports = function(str){}不会使您的函数公开。请试试module.exports = function(str){}。或者,您可以将函数赋值为导出支柱exports.fc = function() {...};。
默认情况下,exports是指向module.exports的空对象。当您重写exports时,module.exports保持不变。
https://stackoverflow.com/questions/30919284
复制相似问题