andrzejdupa
8.06.2016, 20:32:36
czytam książkę o PHPUnit.
W rozdziale "Database Testing" jest podrozdział "DBUnit" w którym jest zdanie na wstępie:
"When you use a database abstraction layer, it is better to rely on your implementation rather than on DBUnit's assert features, but DBUnit is still a good starting point and a big help."
używam Doctrine i nie chce mi się czytać tego podrozdziału jeśli używając Doctrine korzystanie z DBUnit jest bez sensu.
Czy używając Doctrine korzystanie z DBUnit jest bez sensu?
No bo tak naprawdę to co chcesz testować, nie testujesz działania DBAL, bo ono już zostało przecież przetestowane w boju, co najwyżej robisz testy integracyjne
andrzejdupa
8.06.2016, 20:41:15
co ja chcę testować? narazie nic nie testuję, czytam, nie wiem co to DBUnit i nie chcę wiedzieć jeśli nie używa się tego razem z DAL. No w tym rozdziale chodzi chyba o testy integracyjne.
jakby komuś się zechciało odpowiedzieć wprost na moje pytanie to będę wdzięczny
(u mnie też burza)
Używając Doctrine on jako biblioteka posiada już masę testów jednostkowych, akceptacyjnych, integracyjnych wiec nie ma potrzeby testować tego czy działa poprawnie na takim poziomie. No ale programista zawsze mógł się pomylić i go nie właściwe użyć, stąd wykonuje się na Twoim już systemie testy integracyjne, akceptacyjne lub funkcjonalne

No ale nie ma konieczności pisać testów jednostkowych, które napisali już developerzy Doctrine
andrzejdupa
8.06.2016, 20:57:17
Tak jakbyś w przedszkolu dzieciom na pytanie "dlaczego jest burza" mówił coś o jonizacji. Ja chcę wiedzieć czy to czytać, w tej książce jeszcze nic nie było o testach akceptacyjnych, integracyjnych, tylko jednostkowe i pół zdania o integracyjnych.
dobra, dalej nie wiem czy mam olać to DBUNit, ale szybciej przeczytam ten rozdział niż tu dostanę konkretną informację.
ps w tym cytowanym zdaniu chyba nie chodzi o to że ja miałbym testować bibliotekę Doctrine
Dla samej wiedzy możesz przeczytać, ale nie musisz testować jednostkowo Doctrine, wiec tam Ci się nie przyda, czego nie zrozumiałeś?
andrzejdupa
9.06.2016, 15:00:03
chodzi o testy integracyjne czy zapytania wpływają na db tak jak oczekujemy.
jeśli Doctrine to niepotrzebne DBUnit.
No bo DbUnit jak sama nazwa wskazuje jednostkowy
andrzejdupa
10.06.2016, 11:46:26
i PHPUnit jak sama nazwa wskazuje....yyy nie tylko jednostkowe.
weź już może nie odpowiadaj na moje pytania. Zapamiętaj na przyszłość jak zobaczysz post rozpoczęty przez andrzejdupa to nie klikaj. I nie używaj emotikon. Działasz mi na nerwy nie od dziś.
trzeba było od razu odpowiedzieć konkretnie że jeśli Doctrine to nie DBUnit, a nie po tygodniu dopiero jak ja to napisałem to z uśmieszkiem jakiś komentarzyk.
---
edit1:
w książce "phpunit essentials" jak sama nazwa wskazuje autor pisze o testach nie tylko jednostkowych, w rozdziale o DBUnit pisze że to rozszerzenie jest do testów integracyjnych jak sama nazwa wskazuje.
"DBUnit is a PHPUnit extension that makes our integration testing easier. DBUnit allows you to clear the database and import a prepared dataset to set the database to a known state. This is important for database testing."
---
edit2:
i znowu mi moderację postów dali, co chwilę muszę zakładać nowe konto. nie umiem opanować nerwów. W przedszkolu dzieciom nie można z uśmieszkiem ironicznie mówić "no Jacuś, ale nie obcinamy karteczek w kółeczka tylko w kwadraciki, hehe

" bo Jacuś rzuci panią nożyczkami.
Wiele narzędzi można używać do różnych celów ale nie znaczy że jest to zgodne z ich przeznaczeniem, bo są do tego wyspecjalizowane lepsze.
Napisałeś w przedszkolu i skoro się dopiero uczysz to Ci napisałem pełnym zdaniem dlaczego nie testujesz jednostkowo Doctrine. Może czytaj ze zrozumieniem, bo odpowiedź już padłą w 1 poście.
Integracji z baza danych, dlatego iż jest to narzędzie które ułatwia operacje na niej i może posłużyć do napisanie takich testów ale samo powstało do testowania jednostkowego i stąd to co napisałem Unit - jednostkowy. I nie wchodźmy sobie personalnie, bo ja do Ciebie nic nie mam.
Testy integracyjne piszę się, żeby wykryć/wyeliminować ewentualne błędy w integracji, no wiec jeśli używasz w systemie bazy danych to potrzebujesz się z nią czasami połączyć, albo robisz to in memory itd. Test integracyjny spina razem kilka modułów tworzących nasz system jako byt. A ponieważ Doctrine, już zostało przetestowane przez ich developerów, możemy go traktować jako taki moduł, który działa, jedynie problem może być, że my sie z nim źle zintegrowaliśmy np w złej kolejności wykonaliśmy flush, persist i commit. Dla nas istotne jest czy faktycznie w bazie został utworzony rekord.
andrzejdupa
10.06.2016, 13:08:38
dobrze, dzieki za wyjaśnienie.
Ale ja nigdzie pisałem, że chcę testować jednostkowo bibliotekę Doctrine, sam włożyłeś mi to w usta i się z tego nabijasz.
W tej książce w rozdziale o Database Testing w podroździałach o DBUnit i Doctrine mówi się o testach integracyjnych, czyli weryfikowanie czy dane są pobierane i zapisywane w bazie poprawnie. Pytałem czy używając Doctrine korzysta się z DBUnit. Nie pytałem jak testowac jednostkowo bibliotekę Doctrine za pomocą DBUnit.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.