问题:是否可以在CoffeeScript中手动声明变量
我目前正在开始使用CoffeeScript的单元测试,而在完成一个教程时,我来到了必须使用before()和after()函数的地步.虽然您可以在JavaScript中声明变量,但您无法在CoffeeScript中执行此操作.一个(但不是最佳实践)解决方案是将它们添加到窗口对象(像这样).我正在使用的代码来自http://sinonjs.org/.
这是我正在测试的代码:
describe 'Fake server', ->
before(() -> server = sinon.fakeServer.create())
after(() -> server.restore())
it "calls callback with deserialized data", () ->
callback = sinon.spy()
getTodos(42, callback)
# This is part of the FakeXMLHttpRequest API
server.requests[0].respond(
200,
{ "Content-Type": "application/json" },
JSON.stringify([{ id: 1, text: "Provide examples", done: true }])
)
assert(callback.calledOnce)
Run Code Online (Sandbox Code Playgroud)
编译为JavaScript,之前和之后的函数如下所示:
before(function() {
var server;
return server = sinon.fakeServer.create();
});
after(function() {
return server.restore();
});
Run Code Online (Sandbox Code Playgroud)
如您所见,变量服务器在before函数中声明,因此不能在错误的范围之外使用.
有没有办法翻译类似下面的逻辑操作(由于用户输入使用字符串)?或者我是否必须检查每种可能性?(> <=> == = <等)
var x = 5;
var y = 3;
var operator = '>'
if (x operator y)
doSomething();
|
|
v
if (x > y)
doSomething();
Run Code Online (Sandbox Code Playgroud)