【问题标题】:Unit Testing node.js using jasmine unit testing framework使用 jasmine 单元测试框架对 node.js 进行单元测试
【发布时间】:2014-09-03 06:58:02
【问题描述】:

我是单元测试的新手,我正在尝试了解如何对 node.js 项目进行单元测试,但我不确定为什么我当前的测试不起作用。

我有两个文件 fed.js (src) 和 fed.spec.js (spec)

这是我运行此程序时遇到的错误...

错误:

Snap should return 142
Expected undefined to be 142.
Error: Expected undefined to be 142.

杰斯特:

我正在尝试运行测试以确保变量 AllowanceAdditional(位于 fed.js 中)等于 142。

所以我运行了一个 jasmine 单元测试(位于 fed.spec.js)并声明我希望 AllowanceAdditional 等于 (==) 或 (===) 142。但是我得到的错误是 AllowanceAdditional未定义...

有人可以教育我或指出正确的方向吗,我不明白为什么这不起作用。我究竟做错了什么?我希望我的问题有意义,如果没有,请告诉我,我会进一步澄清

【问题讨论】:

  • 抱歉,添加了附加信息。我期待变量 AllowanceAdditional 返回 142,但它说它返回“未定义”

标签: javascript node.js unit-testing jasmine


【解决方案1】:

你必须导出它:

exports.AllowanceAdditional = 142;

在 JavaScript 中,还有其他表达方式。

在我的实践中,我通常使用:

function () {
    this.AllowanceAdditional = 142;
}.call(this);

关键是将全局变量和函数附加到适当的范围,以便 Node.js 可以找到它们。

在浏览器内部,因为.call(this) 总是会传入window 对象。它附加到全局范围。

【讨论】:

  • 我正在导出它,我正在使用 module.exports = snap 导出整个快照对象。我的问题实际上更多是关于如何让我的测试通过?
  • 你的意思是我应该添加你的exports.AllowanceAdditional = 142;在 src 文件还是 spec 文件中?
  • src文件,node需要能找到
猜你喜欢
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 2023-01-13
相关资源
最近更新 更多