2012-04-06 8 views
2

My test/ «S полна mocha испытаний:Выполнение тестов мокко индивидуально проект

test/ 
├── a.coffee 
└── b.coffee 

Say, a.coffee является

console.log 'Executing A test!' 
global.foo = 'FOO' 

b.coffee и является

console.log 'Executing B test!' 
console.log 'Expecting foo not defined:', assert.equal(foo, undefined) 

При выполнении мокко:

$ mocha --compilers coffee:coffee-script test/* 
Executing A test! 
Executing B test! 
Expecting foo not defined: false 

Похоже, тесты одних и тот же глобальный объект (который я хотел бы избежать) ...


Есть ли способ для выполнения каждого теста по отдельности?

спасибо.

+0

Надеюсь, я правильно понимаю ваш вопрос, но не могли бы вы использовать затворы для этого? – Alfred

ответ

0

Если код, который вы тестируете ведет себя по-разному в зависимости от некоторого глобального состояния, то вы должны взять под свой контроль, что в рамках испытаний. Вы можете закодировать некоторую функцию «beforeEach», которая устанавливает любое глобальное состояние, которое вам требуется.

Возможно, вам также стоит подумать о повторной факторизации кода, чтобы он не зависел от глобального состояния. Если вы можете передавать параметры или что-то (явное vs неявное), то вы можете протестировать с большей уверенностью.

0

Глобальное состояние в целом затрудняет тестирование. В Чистый код Переговоры по googletechtalks стоит смотреть на тех, кто заинтересован в письменной форме проверяемым программное обеспечение

  1. Unit Tests
  2. Global State and Singletons
  3. Don't Look For Things
Смежные вопросы