Вопрос: Можно ли вручную объявить переменную в CoffeeScriptCoffeeScript - Вручную объявить переменную
Я в настоящее время, начиная с модульное тестирование для CoffeeScript, идя через учебник я пришел к точке, где я должен был используйте функции before()
и after()
. Хотя вы можете объявить переменную в JavaScript там, где она должна быть, вы не можете сделать это в CoffeeScript afaik. Одним из решений (но не лучшей практики) было бы добавить их в объект окна (like this). Код, с которым я работаю, составляет от 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)
Составлен на JavaScript, до и после того, как функция выглядит следующим образом:
before(function() {
var server;
return server = sinon.fakeServer.create();
});
after(function() {
return server.restore();
});
Итак, как вы видите, переменные сервера объявленные в функции before, и поэтому не могут использоваться за пределами неправильной области.
Ошибка 'server.requests [0]', поскольку 'server' не инициализируется в этой точке, no ...!? – deceze
Это правильно, и я, похоже, не работаю, но проблема в том, что решение, о котором вы говорили, отлично работает (по другому коду) с тем же до, после структуры. Именно для этого отказа мне нужно инициализировать 'server' перед функцией' before() ' –