Проверка того, что функция не будет вызываться в CoffeeScript (и JS) - PullRequest
0 голосов
/ 04 марта 2012

У меня есть эта функция с именем render, которая имеет следующий код в CoffeeScript.Это представление Backbone, которое вызывает функцию afterRender, только если она определена, как показано ниже:

@afterRender() if @afterRender

Как я могу проверить, что afterRender не вызывается, если он не существует?

Вот положительный тест:

it 'calls afterRender when defined', ->
  called = false
  @view.afterRender = -> called = true
  @view.render()
  expect(called).toBeTruthy()

Но все, что я пытался найти хороший способ проверить, провалилось.

Я использую sinon.js, поэтомуможете использовать его шпионов, издевательства и окурки, если вы думаете, что это поможет.

Есть идеи?

1 Ответ

0 голосов
/ 04 марта 2012

Вы можете использовать mock , чтобы проверить оба ваших случая - то, что он вызывается один раз, в первом случае (что вы делаете вручную с переменной called), и что он никогда называется во втором:

Первый случай:

sinon.mock(@view).expects('afterRender').once()
@view.render()

Второй случай:

sinon.mock(@view).exepcts('afterRender').never()
@view.render()
...