Używam czegoś bardzo podobnego do poniższego, aby wykonać serię testów API przy użyciu Mocha. To jest świetne, ale wymaga osobnego wywołania API dla każdego testu. Chcę użyć tego samego wywołania interfejsu API i uruchomić wiele testów przeciwko tej odpowiedzi. Czytałem, że można użyć do tego celu before
, ale żaden z przykładów w Internecie nie pokazuje, że działa z wywołaniami API?Node.js + Chai/Mocha/Powinien: przeprowadzić wiele testów przeciwko tej samej odpowiedzi
var chai = require('chai');
var request = require('request');
var async = require('async');
var assert = chai.assert,
expect = chai.expect,
should = chai.should();
describe('/', function() {
it('should return 200', function (done) {
request.get('http://localhost:8000', function (err, res, body) {
res.should.have.status(200);
done();
});
});
it('should say "Hello, world!"', function (done) {
request.get('http://localhost:8000', function (err, res, body) {
body.should.have.property('type', 'aType');
done();
});
});
});
Pomyślałem o zrobieniu tego, ale kiedy mam 10 lub więcej twierdzeń o ciele, to robi się naprawdę brzydko, próbując opisać, co się dzieje. Miał nadzieję mieć czystą listę testów z rzędu z odpowiednimi opisami. – brandonscript
Dziwne 'should.have.status' nie wydaje się ładnie grać w ten sposób - nie wiem dlaczego. Mam nadzieję, że rozumiem to lol! – brandonscript
Tylko jedna aktualizacja: nie musisz 'done' na testach, jeśli tylko sprawdzasz odpowiedź. Nie ma nic asynchronicznego w klauzulach 'it()' w twoim pierwszym przykładzie. – deitch