В чем разница между библиотекой утверждений, средой тестирования и средой тестирования в javascript?

Чай - это библиотека утверждений.

Мокко и Жасмин тестируют фреймворки.

а карма - это среда тестирования.

Я уже читал разницу между доступными средами тестирования: мокко, чай, карма, жасмин, must.js и т. Д.

3 ответа

Решение

Библиотеки утверждений - это инструменты для проверки правильности вещей.
Это значительно облегчает тестирование вашего кода, поэтому вам не нужно делать тысячи if заявления.
Пример (с использованием модуля should.js и Node.js assert):

var output = mycode.doSomething();
output.should.equal('bacon'); //should.js
assert.eq(output, 'bacon'); //node.js assert

// The alternative being:
var output = mycode.doSomething();
if (output !== 'bacon') {
  throw new Error('expected output to be "bacon", got '+output);
}

Среды тестирования используются для организации и выполнения тестов.
Мокко и Жасмин - два популярных варианта (и они на самом деле довольно похожи).
Пример (здесь используется mocha с must.js):

describe('mycode.doSomething', function() {
  it ('should work', function() {
    var output = mycode.doSomething();
    output.should.equal('bacon');     
  });
  it ('should fail on an input', function() {
    var output = mycode.doSomething('a input');
    output.should.be.an.Error;
  });
});

Среды тестирования - это места, где вы проводите свои тесты.

Карма - это своего рода крайний случай, в том смысле, что это своего рода одноразовый инструмент, а многим это не нравится. Карма работает, выполняя ваши модульные тесты внутри браузеров (по умолчанию PhantomJS, браузер без поддержки WebKit), чтобы вы могли тестировать JavaScript-код на основе браузера.

Фреймворки, такие как Mocha и Jasmine, работают как в браузере, так и с Node.js и обычно по умолчанию имеют значение Node.

Среда тестирования (или тестовый прогон) - это то, что запускает все ваши тесты. Он запускает их, агрегирует результаты и т. Д.

Среда тестирования - это то, что вы используете для создания каждого из тестов. Например, жасмин использует синтаксис

it('name of test', function() {
   // do some tests
});

Библиотека утверждений - это то, что фактически проверяет результаты вашего теста

it('name of test', function() {
   assert x == 5 //pseudocode, the syntax will vary based on your asserting framework 
});

Попробуйте найти более простой ответ. Я нуб, но вот как это звучит.

Mocha организует тесты, и именно здесь вы начинаете тесты. В nodeJS есть базовое « утверждение », которое вы можете использовать для проверки того, что все работает как положено.

Chai — это способ расширить структуру « утверждений », чтобы вы могли писать более семантически полезные вещи, такие как:

      expect(foo).to.be.a('string');

вместо менее явного стиля:

      assert.ok(typeOf(foo) ==='string')

Или что-то с менее семантическим контекстом.

Другие вопросы по тегам