Я добавил раздел в coffeescript wiki о том, как я управляю пространством имен. Это довольно элегантно (я думаю)
https://github.com/jashkenas/coffee-script/wiki/Easy-modules-with-coffeescript
Coffeescript не имеет встроенной модульной системы, включающей все файлы исходного кода в анонимную функцию. Однако с небольшим количеством хитрости вы можете иметь модули, которые могут позавидовать Ruby.
Я определяю свои модули, как показано ниже
@module "foo", ->
@module "bar", ->
class @Amazing
toString: "ain't it"
Реализация модуля помощника составляет
window.module = (name, fn)->
if not @[name]?
this[name] = {}
if not @[name].module?
@[name].module = window.module
fn.apply(this[name], [])
, который вы можете поместить в другой исходный файл, если хотите. Затем вы можете получить доступ к своим классам с помощью модулей пространства имен
x = new foo.bar.Amazing
по отношению к вашему конкретному вопросу, я думаю, что приведенные ниже спецификации жасмина ответят на него, используя мой
модульная система
@module "test", ->
hidden = 10
@open = hidden
describe "test", ->
it "has no hidden", ->
expect(test.hidden?).toEqual false
it "has open", ->
expect(test.open?).toEqual true