È meglio testare l'unità utilizzando una libreria fittizia come "nock" (nodejs) o semplicemente testare direttamente le richieste HTTP del server?
Ecco un esempio del mio test del server Express per verificare se il mio server è attivo e verificare i dati di yelp che vengono serviti dal mio server.
test.js:
describe('Express server', () => {
let request;
beforeEach(() => {
request = chai.request(app);
});
it('It runs', (done) => {
request.get('/').end((err, res) => {
expect(res).to.have.status(200);
done();
});
})
it('/post serves yelp data', (done) => {
// let yelp = nock('localhost:8080').post('/post', mockplace)
let mockPlace = [
{
name: 'Le Thai',
coords: {
lat: 36.168743,
lng: -115.139866
}
}
];
let expected = {
name: 'Le Thai',
img: 'https://s3-media1.fl.yelpcdn.com/bphoto/vYnAqILo37UXrNvz_5QX0Q/o.jpg',
hours: false,
revcount: 1425,
rating: 4,
price: '$$',
location: '523 Fremont St,Las Vegas, NV 89101',
phone: '(702) 778-0888',
url: 'https://www.yelp.com/biz/le-thai-las-vegas?adjust_creative=euqH0_vzVDHpkWNkOrRvRg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=euqH0_vzVDHpkWNkOrRvRg'
}
request.post('/post').set('content-type', 'application/json').send(mockPlace).end((err, res) => {
assert.deepEqual(res.body[0], expected);
done();
})
})
});
Ho provato i test in entrambi i modi descritti sopra e ho notato che l'utilizzo di un servizio di simulazione come nock riduce drasticamente il tempo di esecuzione della suite di test. Questa sarebbe l'unica ragione per usare un servizio di simulazione?
Se sto usando un servizio di simulazione, allora qual è il punto di fare i test in primo luogo?