Jasmine测试的CoffeeScript函数-括号很奇怪
CoffeeScript function for Jasmine testing - parenthesis are weird
我的第一个测试是用纯JavaScript进行的,然后我想尝试用CoffeeScript编写同样的测试。
括号没有按我想要的方式出现,这导致测试失败。。。我得到的错误是:TypeError: Object 1.00 has no method 'toBe'
我的JavaScript测试如下:
describe( "conversion from water to coffee", function () {
it("converts water to coffee", function () {
expect(waterToCoffeeCalc(17)).toBe('1.00');
});
});
我的CoffeeScript版本是:
describe "coversion from water to coffee", ->
it "coverts water to coffee", ->
expect (waterToCoffeeCalc 17).toBe('1.00')
此CoffeeScript正在编译为:
// Generated by CoffeeScript 1.6.3
describe("coversion from water to coffee", function() {
return it("coverts water to coffee", function() {
return expect((waterToCoffeeCalc(17)).toBe('1.00'));
});
});
我看到了括号的问题,但我只是在学习CoffeeScript,我不确定将参数传递给函数的正确方法。
CoffeeScript对空白非常敏感。此:
f(x).g()
解析方式与JavaScript相同:没有空格意味着f(x)
中的括号是"函数调用"括号。此:
f (x).g()
但是,被解析为:
f((x).g())
所以空格表示CCD_ 3中的括号是"表达式分组"括号。方法名称及其参数之间的空格完全改变了代码的含义。
你可能想这么说:
expect(waterToCoffeeCalc 17).toBe('1.00')
甚至:
expect(waterToCoffeeCalc(17)).toBe('1.00')
经验法则是永远不要在函数名(或if
)和带括号的参数之间留空格。
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 在CoffeeScript文件上运行Jasmine测试时,对象未定义错误
- beforeEach 不会在模块化 QUnit/Sinon 测试中使用 CoffeeScript 中的 Require.
- 用 Coffeescript 编写的 Casperjs 测试挂起
- Jasmine测试的CoffeeScript函数-括号很奇怪
- AngularJS教程测试代码没有'我无法使用CoffeeScript代码
- 匿名函数在Coffeescript中如何测试它
- 用Jasmine在CoffeeScript中测试Backbone.js的TypeError
- 运行包含CoffeeScript文件导入的Jest测试时出现SyntaxError
- 测试是否定义了变量,如果没有,则在 Coffeescript 中为其分配一个空字符串
- CoffeeScript 测试和部署在 PHP/LAMP 堆栈上
- 新生成器angular项目(CoffeeScript)的测试失败