2012-08-30 14 views
14

Obecnie patrzę na ramy meteorytów i to pytanie natychmiast przeskakuje na myśl. Czy kod, który piszę (na przykład kod Template.xxx lub Template.xxx.events) faktycznie można przetestować w jakikolwiek sposób?Czy kod meteorytowy jest efektywny?

Oczywiście możesz przetestować kod, który nie jest związany z uruchomieniem systemu meteor, tak jak każdy inny kod, ale mam wrażenie, że większość kodu, który napiszesz wewnątrz meteoru, jest w jakiś sposób dopasowana do meteoru i jego funkcji.

+0

Oto kolejny przykład testów jednostkowych w ith Meteor http://stackoverflow.com/questions/12987525/meteor-test-driven-development/15471731#15471731 –

Odpowiedz

5

W lutym 2014 roku, kod Meteor to jednostka-sprawdzalne za pomocą wbudowanego w Tinytest ram, tak długo, jak poruszać cały kod aplikacji w pakiety, which you should do anyway. Szybka i brudna metoda polega na dodaniu pliku package.js. Plik ten służy do:

  1. Zadeklaruj eksport. Jest to dobra praktyka dla clean namespacing mieć one global object for your app
  2. stwierdzenie pliki testowe

Oto przykład przez Eventedmind - https://github.com/EventedMind/meteor-file

można zobaczyć w meteor-file-test.js że dostęp MeteorFile, który jest zadeklarowany jako eksport w package.js.

+1

Dziękuję za odpowiedź. Zaktualizowałem zaakceptowaną odpowiedź, aby odzwierciedlić obecny stan. – xen

1

Myślę, że można to sprawdzić, chociaż nie zajrzałem do niego zbyt głęboko.

Jeśli otworzysz pakiet liveui ($METEOR_HOME/packages/liveui), wydaje się, że jest całkiem sporo testów jednostkowych napisanych przy użyciu TinyTest i testowanie renderowania. Myślę, że byłoby to dobre miejsce, aby rozpocząć: -

  • liveui_tests.js
  • liveui_tests.html

itp

nadzieję, że pomoże

+0

Proszę zobaczyć moją odpowiedź na więcej informacji, tutaj: http://stackoverflow.com/questions/12987525/meteor-test-driven-development/14049725 # 14049725. tl; dr To jest coś, o czym już wie zespół meteorów. Pomagam wprowadzić sprawę na pierwszy plan i pomagam im wdrożyć pewne ostateczne sposoby radzenia sobie z TDD z meteorem. :) – zealoushacker

6

Nie robi Wydaje się, że jest to jakikolwiek oficjalny szkielet testowy, z wyjątkiem undocumented Tinytest (patrz: video tutorial) i jego helpers, ale zawsze możesz zawęzić/udawać ou t interfejs API Meteor, tak jak zrobiłem to w tym trywialnym przykładzie na github.

Wyobrażam sobie, że dla nietrywialnych aplikacji może być znacznie trudniej, więc dobrym pomysłem jest oddzielenie logiki aplikacji rdzeniowej od wywołań Meteor API.

+0

Dziękuję za tę próbkę :) wydaje się, że tego właśnie szukam. Ale nadal mnie to niepokoi, że nie ma na to "łatwego" sposobu. Zwłaszcza, że ​​nie zawsze można oddzielić logikę. – xen

Powiązane problemy