Wpis z mikrobloga

Taaadaam, oto mój pierwszy test jednostkowy w życiu:

class GreatCircleDistanceTest extends TestCase {

public function testDistance()

{

$this->assertEquals(1470, great_circle_distance('52.16583252', '20.96722221', '51.47083282', '-0.46055600'));

}

}

Działa!

Powiedzcie mi tylko, czy tak to powinno się robić, czy może coś robię w zły sposób?

Funkcję greatcircledistance() umieściłem w pliku app/helpers.php, a powyższy kod w app/tests/GreatCircleDistanceTest.php

Testuję tutaj, czy odległość z Warszawy do Frankfurtu wynosi 1470 km.

#laravel #php #webdev #unittest #phpunit
  • 5
  • Odpowiedz
@kot1401: Wygląda nieżle, jeśli oczywiście do obliczeń statycznych wyników użyłeś zewnętrznego narzędzia, a nie swojego kodu. Przetestuj też warunki graniczne oraz warunki dla których kod powinien się wysypać. Oprócz tego istnieje konwencja assertEqual(given, expected), ponieważ sprawdzasz "czy wynik funkcji jest równy przewidywaniom", a nie czy "przewidywania są równe wynikowi funkcji". Poza tym długa ta linia, w php nie ma ograniczenia ilości znaków dla linii?

http://i.stack.imgur.com/xXkvA.jpg

przy pisaniu komentarzy pamiętaj o
  • Odpowiedz
@kot1401: Źle robisz, że chcesz do takich rzeczy wykorzystywać globalne funkcje. Dopisz więcej przypadków, żeby mieć pewność, że działa poprawnie i utwórz sobie klasę.
  • Odpowiedz