¿Cómo declaro una variable en un ámbito específico en coffeescript?

Estoy tratando de escribir una prueba de jazmín en coffeescript que usa un bloque beforeEach. Esto se encuentra con un problema con el alcance variable de coffeescript. Esto es lo que me gustaría escribir:

describe 'PhoneDetailCtrl', () ->
  beforeEach () ->
    scope = angular.scope()
    $browser = scope.$service('$browser')

  it 'should fetch phone detail', () ->
    scope.params = {phoneId:'xyz'}
    $browser.xhr.expectGET('phones/xyz.json').respond({name:'phone xyz'})
    ctrl = scope.$new(PhoneDetailCtrl)

    expect(ctrl.phone).toEqualData({})
    $browser.xhr.flush()

    expect(ctrl.phone).toEqualData({name:'phone xyz'})

in embargo, esto no funciona porque elscope y$browser será declarado convar en el ámbito más interno. Es decir, una vez en labeforeEach y luego nuevamente en elit bloque. Puedo forzar que las variables se declaren en el ámbito correcto inicializándolas, pero esto parece muy extraño:

describe 'PhoneDetailCtrl', () ->
  $browser = {}
  scope = {}
  beforeEach () ->
    scope = angular.scope()
    $browser = scope.$service('$browser')

  it 'should fetch phone detail', () ->
    scope.params = {phoneId:'xyz'}
    ...

Esto funciona, pero el javascript con el que se compila es en realidad

describe('PhoneListCtrl', function() {
  var $browser, ctrl, scope;
  $browser = {};
  ctrl = {};
  scope = {};

donde todo lo que necesito es la líneavar $browser, ctrl, scope;. ¿Puedo escribir esto de manera más concisa en coffeescript?

Respuestas a la pregunta(2)

Su respuesta a la pregunta