Maciekek / ProjektZespolowy2015

MoneyGiver
http://178.62.111.179/
0 stars 2 forks source link

Podłączenie bazy danych pod web`a #13

Closed Maciekek closed 9 years ago

Maciekek commented 9 years ago

W szablonie projetkowych do web`a nie ma podłączonej bazy danych. Trzeba to połączyć, i dodać może jakieś testy robiące zapis i odczyt z bazy potwierdzające faktyczne działanie serwera z bazą danych

Jankkol commented 9 years ago

Dodałem połączenie z bazą które działa i ma sprawdzenie po stronie serwera czy jest połączony z bazą danych. Z testami mam problem, pogadamy pewnie w poniedziałek co i jak się odbywa w tej strukturze. Te testy powinny działać i testują inserta, finda i dropa na bazie. Testują też connection. Niestety nie wiem jak je odpalić tutaj. Jak będziesz miał chwilkę sam zobacz. Jak nie będą działać bądź są nie przydatne to zrobię revert tego commita, a resztę zmerguje do majstra, żeby można było robić ewentualne inne taski na bazie.

Maciekek commented 9 years ago

jak je odpalałeś?

Jankkol commented 9 years ago

chciałem przez karma, coś w stylu "npm karma run", "karma karma.config.js" itd. Próbowałem też zrobić connection test jako część scenariusza testu end to end, ale tam w protractor configu jest base url zrobiony na stałe i nie mogłem przekierować go na inny port w jednym tylko teście.

2014-10-25 21:23 GMT+02:00 Maciej Kucharski notifications@github.com:

jak je odpalałeś?

— Reply to this email directly or view it on GitHub https://github.com/Maciekek/ProjektZespolowy2015/issues/13#issuecomment-60494387 .

Maciekek commented 9 years ago

OK, muszę przemyśleć temat testów serwerowych i bazy bo widze tu maly problem. Póki co wmerguje

Maciekek commented 9 years ago

OK, muszę przemyśleć temat testów serwerowych i bazy.Póki co wmerguje

Maciekek commented 9 years ago

Generalnie jeszcze do samych testów działających czy nie mam parę uwag. Twoje testy są bardzo skomplikowane, tak na dobrą sprawę, to żeby mieć pewność, że te testy działają to przydały by się testy testów. Z tego co ja wiem o testowaniu, to testujemy metody. Czyli, mamy metodę która robi nam zapytanie na jakiejś bazie. I my sprawdzamy w teście czy ta metoda zwróci nam to co powinna. Możemy też testowąć jak zachowa się aplikacja w przypadku kiedy nie połączy się z bazą danych. Testy powinny testować coś, klasę, metode. Te testy nie mają żadnego powiązania z rzeczywistą aplikacją. Uważam, że nie powinno być też takich importów var mongo = require('mongodb');, bo to przecież powinna robić aplikacja/serwer. Testy powinny mieć kilka linijek kodu, jak najmniej, FOR kręcony do 100 chyba nie jest miarodajnym testem. Postaram się poprawić te testy, tak żeby działało. A poza tym to skąd te testy wziąłeś?;)

I jeszcze jedno główne pytanie: Czy zaliczenie tych testów da nam pewność, że aplikacja działa prawidłowo? Przez to, że jest to zupełnie oddzielny byt, wydaje mi się, że nie

Jankkol commented 9 years ago

Testy były już gotowe owszem i może nie potrzebny jest taki for, a jeden prosty insert + find na tym czy w ogóle znajdzie. Jednak nie są mega skomplikowane. Nie wiedziałem za bardzo co miałoby być testowane oprócz samego połączenia, co chciałem zrobić. Czy same testy sprawdzałeś czy działają ? Który lib tak naprawde jest tu odpowiedzialny za unit testy? karma? q?

W dniu 25 października 2014 21:38 użytkownik Maciej Kucharski < notifications@github.com> napisał:

Generalnie jeszcze do samych testów działających czy nie mam parę uwag. Twoje testy są bardzo skomplikowane, tak na dobrą sprawę, to żeby mieć pewność, że te testy działają to przydały by się testy testów. Z tego co ja wiem o testowaniu, to testujemy metody. Czyli, mamy metodę która robi nam zapytanie na jakiejś bazie. I my sprawdzamy w teście czy ta metoda zwróci nam to co powinna. Możemy też testowąć jak zachowa się aplikacja w przypadku kiedy nie połączy się z bazą danych. Testy powinny testować coś, klasę, metode. Te testy nie mają żadnego powiązania z rzeczywistą aplikacją. Uważam, że nie powinno być też takich importów var mongo = require('mongodb');, bo to przecież powinna robić aplikacja/serwer. Testy powinny mieć kilka linijek kodu, jak najmniej, FOR kręcony do 100 chyba nie jest miarodajnym testem. Postaram się poprawić te testy, tak żeby działało. A poza tym to skąd te testy wziąłeś?;)

— Reply to this email directly or view it on GitHub https://github.com/Maciekek/ProjektZespolowy2015/issues/13#issuecomment-60494852 .

Maciekek commented 9 years ago

W takiej formie to nie zadziała. Karma odpala te testy w przeglądarce, a tam nie działają require('mongodb'), bo to działa po stronie nodejs. I moim zdaniem to nie powinno działać. Chemy testować połączenie pomiedzy serwer.js ----- mongo. Także musimy dodać odpowiednie metody do serwer.js. Zajmę się tym i pokaże o co mi chodziło dla lepszego zrozumienia. Przynajmniej jeden test, a jak będziesz chciał to pociągniesz następne. Ale muszę o tym jeszcze pomyśleć

A Q to bilbiotaka do zarządzania promise`ami. Opowiem o tym w poniedziałek

Jankkol commented 9 years ago

Protractor tak samo, po stronie frontend'u. Tylko myślałem, że mamy coś do testów po stronie serwera.

W dniu 25 października 2014 21:50 użytkownik Maciej Kucharski < notifications@github.com> napisał:

W takiej formie to nie zadziała. Karma odpala te testy w przeglądarce, a tam nie działają require('mongodb'), bo to działa po stronie nodejs. I moim zdaniem to nie powinno działać. Chemy testować połączenie pomiedzy serwer.js ----- mongo. Także musimy dodać odpowiednie metody do serwer.js. Zajmę się tym i pokaże o co mi chodziło dla lepszego zrozumienia. Przynajmniej jeden test, a jak będziesz chciał to pociągniesz następne

— Reply to this email directly or view it on GitHub https://github.com/Maciekek/ProjektZespolowy2015/issues/13#issuecomment-60495162 .

Maciekek commented 9 years ago

Ja trochę dałem dupy bo tego nie uwzględniłem.. Protractor to testy takie jakby manualne, tylko że pisane. Protractor to jakby user który klika i sprawdza co się odpaliło. Te testy /unit to są testy unitowe "klas" js-owych. Czyli np. controllerów itp. Otworze sobie nowego taska, na stworzenie miejsca i narzędzi do testowania serwera.

Jankkol commented 9 years ago

Zasugerowałem się wsumie zbyt szybko, że to też testy serwera, chociaż zdziwiły mnie controllery tam. Protractor to kumam. Equals sellenium i fajnie wygladaja te testy end to end. Chciałem tam po prostu go troche oszukać i podać mu url do bazy :D żeby tak sprawdzić connection ;)

W dniu 25 października 2014 22:00 użytkownik Maciej Kucharski < notifications@github.com> napisał:

Ja trochę dałem dupy bo tego nie uwzględniłem.. Protractor to testy takie jakby manualne, tylko że pisane. Protractor to jakby user który klika i sprawdza co się odpaliło. Te testy /unit to są testy unitowe "klas" js-owych. Czyli np. controllerów itp. Otworze sobie nowego taska, na stworzenie miejsca i narzędzi do testowania serwera.

— Reply to this email directly or view it on GitHub https://github.com/Maciekek/ProjektZespolowy2015/issues/13#issuecomment-60495461 .

Maciekek commented 9 years ago

Ogarniesz dalej te testy?

Jankkol commented 9 years ago

Postaram sie ogarnac, ale niedawno skonczylem polmaraton i zanim bede w domu i sie ogarne to bedzie 19. Na pewno wcommituje polaczenie do bazy, bo to jest chyba spoko? A testy jakies dorzucales, czy samego liba do unit testow serwera?

Maciekek commented 9 years ago

dorzuciłem jeden test zawsze zwracający true, dla testu czy to działa. Wiec nie

W dniu 26 października 2014 15:39 użytkownik Jan Kąkol < notifications@github.com> napisał:

Postaram sie ogarnac, ale niedawno skonczylem polmaraton i zanim bede w domu i sie ogarne to bedzie 19. Na pewno wcommituje polaczenie do bazy, bo to jest chyba spoko? A testy jakies dorzucales, czy samego liba do unit testow serwera?

— Reply to this email directly or view it on GitHub https://github.com/Maciekek/ProjektZespolowy2015/issues/13#issuecomment-60519285 .

Pozdrawiam, Maciej Kucharski

Jankkol commented 9 years ago

Done, zamykam.