2012-04-30 21 views
25

uczę nodejs i mam bazę danych MongoDB, z którymi mam do interakcji z. Obecnie myślę o używaniu mocha dla frameworka testów jednostkowych i zombie.js dla frameworku testów akceptacyjnych. Zastanawiałem się, jak mogę wykonać testy akceptacji na pełną skalę, które trafiły do ​​bazy danych mongodb. Czy istnieje framework/moduł, który pomaga w zastąpieniu bazy danych testową bazą danych lub czy mocha lub zombie.js ma funkcjonalność, którą można łatwo wykorzystać do zastąpienia bazy danych.Mock/Test MongoDB Database node.js

jest tam również ramy, która jest podobna do idei fabryk (zamiast lamp) tworzenia obiektów bazy danych.

Podobną koncepcję, z którą spotkałem się w świecie szyn, to rspec, istnieje plik spec_helper.rb, który uruchamia się przed uruchomieniem testów, co ustawia konfigurację projektów, aby zdecydować, która baza danych trafić podczas uruchamiania testów. I używa database_cleaner do czyszczenia testowej bazy danych przed uruchomieniem testów. Dla fabryk, użyłem dziewczyny z fabryki, aby ponownie stworzyć obiekty fabryczne ze schematu bazy danych w świecie szyn.

Dzięki

+0

Stworzyłem bibliotekę, aby umożliwić zachowanie factory_girl/machinist - ektypes (dziwne słowo, ale ma sens, gdy wiesz, co to znaczy). To trochę różni się od świata Ruby jak nie ma standardowy ORM/ODM w node.js, więc trzeba określić „strategię” dla warstwy trwałości. Nie są trudne do zrobienia. Mam jedną dla Sequelize w tej chwili. Zobacz https://github.com/nicholasf/ectypes.js – nicholasf

Odpowiedz

3

Istnieje kilka

http://mongodb.github.com/node-mongodb-native/github/github.html#test-helpers-and-libraries

ale może chcesz po prostu szukać na github lub zapytać w grupie google, jak również.

+1

[jedynym, który łączy do stron] (https://github.com/tdegrunt/mongodb-fixtures) wydaje się być pozbawiona drogę do kwerendy fałszywe bazy danych, jak wskazano [problem sprzed trzech lat] (https://github.com/tdegrunt/mongodb-fixtures/issues/3). Czy nie rozumiem, czy też czyni to całkowicie bezużytecznym dla prawie wszystkich celów? – Josh1billion

Powiązane problemy