【问题标题】:jasmine, javascript茉莉花, javascript
【发布时间】:2012-12-27 02:12:40
【问题描述】:

我刚开始学习 Javascript 和 Jasmine,在运行测试时偶然发现以下错误消息:“ReferenceError: greet is not defined”

// greetSpec.js

  describe('greeter', function() {
    return it('should greet with message and name', function() {
      var result;
      result = greet('Hello', 'John Doe');
      return expect(result).toBe('Hello, John Doe!');
    });
  });


// greet.js    

      var greet;

      greet = function(message, person) {
        var greeting;
        return greeting = "" + message + ", " + person + "!";
      };

【问题讨论】:

  • 您实际上并没有提出任何问题,您应该说明您的问题是什么以及您尝试了什么。无论如何,您必须确保您的 jasmine 文件可以看到 greet。
  • 在return语句中设置局部变量greeting并返回有什么意义?
  • @AndrewBarrett,我如何确保我的 jasmine 文件可以看到问候语?

标签: javascript unit-testing jasmine


【解决方案1】:

函数定义在之前greet 的声明。想想从上到下扫描的文件。当它到达describe 调用时,变量greet 不存在,因此出现错误。尝试将 greet 函数定义放在调用之上。

事实证明,正如 Lennier 所说,“某些咖啡脚本生成的文件之间存在冲突”。不过很高兴我能帮上忙。

【讨论】:

  • 有两个不同的文件:greet.js 和 greetSpec.js
  • 确保 greet.js 在 greetSpec.js 之上定义
  • 你能发布describe的定义吗?我想不出这不起作用的任何其他原因。你确定这是每个文件的完整代码吗?
  • 部分coffeescript生成的文件有冲突。
猜你喜欢
  • 2014-12-12
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2023-03-23
  • 2016-10-14
  • 2015-10-01
  • 1970-01-01
  • 2014-02-21
相关资源
最近更新 更多