Czy da się otestować API, NodeJS, expressJS i z mockować bazę danych sequelize

0

Witam mam pytanie jak otestować kod który jest API napisany w NodeJS i expressJS z bazą danych sequelize, ktorą chciałbym zmockować do testów jednostkowych. Z góry dzięki

1

JavaScript ma to do siebie, że wystarczy wpisać odpowiednią frazę w Google i zazwyczaj po chwili znajdujemy to czego szukamy

nodejs express sequalize database e2e

https://www.google.com/search?q=nodejs+express+sequelize+e2e&oq=nodejs+&aqs=chrome.0.69i59l2j69i60l6.2255j0j7&sourceid=chrome&ie=UTF-8

Pytanie jest mało precyzyjne, i ciężko streścić zawartość kursu, lub artykułu na ten temat w krótkim poście na forum, więc musisz przejrzeć kilka bibliotek i wybrać coś co Ci odpowiada.

3
  • Czy da się otestować - da się
  • jak otestować - a to już więcej musisz powiedzieć co to za API, chociaż pewnie zgaduje że krzywe REST API jak teraz wszyscy robią
  • mockować bazę danych sequelize - prościej może być postawić pustą na potrzeby testów niż mokować, ale wtedy trzeba mądrzej testy pisać
0

Chciałem wykorzystać sequelize-mock ale nie mockuje mi bazy w pierwszej linicje metody Register dałem User.findAll() i wyświetla wszystko z bazy produkcyjnej a teoretycznie powinno tylko to co jest w db.Mock.define()

0

Nie wrzucaj kodu jako obrazek... Tylko przez specjalne znaczniki

```js
// I pomiędzy nimi Twój kod
```

Wracając do problemu z kodem to znalazłem repozytorium, które pokazuje jak połączyć jest.mock z sequelize-mock https://github.com/kvr2277/sequelize-mock-jest

Przykład jest sprzed 3 lat, więc w nowszych wersjach mogło się coś niestety zmienić. Musisz sprawdzić, czy u ciebie zadziala.

0

No właśnie ten sam kod znalazłem i mi to nie działa

Hmm... z tego sequelize-mock nigdy nie korzystałem to ciężko powiedzieć czemu to nie działa, dodatkowo dajesz jakieś szczątkowe informacje co za bardzo nie pomaga w odnalezieniu przyczyny błędu.

Jesteś pewny, że dokładnie przejrzałeś to repozytorium? Bo ja już na pierwszy rzut oka widzę różnicę

// Twój kod ze screena, którego nie mogę nawet skopiować
jest.mock('../models/user.model.js', () => () => {
  // ...
});

// VS

// Github
jest.mock('../main/models/USER', () => () => {
  // ...
});

https://jestjs.io/docs/mock-functions

To rozszerzenie js na samym końcu pliku jest zbędne, więc może dlatego ten mock nie działa? jest pewnie nie może znaleźć odpowiedniego modułu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1