Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

Symulacja zmiany roku na kolejny

odsłon: 1.13Kphp year
0

Mam kawałek kodu w którym powinno coś się zadziać jak będzie kolejny rok. Jak testujecie-symulujecie zmianę roku żeby zobaczyć czy to zadziała?

$sql = "SELECT * FROM faktura ORDER BY id_faktura DESC LIMIT 1";
        $result2 = $con->query($sql);
                  if ($result2->num_rows > 0) {
                     while($row2 = $result2->fetch_assoc()) {
            $year = date("Y");
            $nr = $row2["nr_faktura"];
            //sprawdza czy nr faktury zawiera biezący rok
            if (strpos($nr, $year) > 0) {
              $n = explode("/",$nr);
                             if ($n[1]=$year) {
                $nrNew = $n[0]+1;
                $nowyNumer = $nrNew."/".$year;
                echo $nowyNumer;
              }
              //jeśli nie zawiera to jest kolejny rok
              }elseif (strpos($nr, $year) == 0) {
                $nrNew = "1";
                $nowyNumer = $nrNew."/".$year;
                echo $nowyNumer; 
              }
          }
        }

odpowiedział na pytanie
Dodaj komentarz
0

To pytanie zakrawa o temat testowania oprogramowania w ogóle.

Generalnie wszystko zależy od tego, jak chcesz to robić, ile chcesz poświęcić na to czasu i jaki masz budżet. Zależy też, czy Twoja aplikacja jest bardzo krytyczna i każdy błąd może oznaczać poważne konsekwencje (np. aplikacje do księgowości online, bankowość internetowa itp.) czy też możesz sobie pozwolić na odrobinę luzu.

Jeśli chodzi o symulowanie zmiany daty, to w Twoim przypadku możesz po prostu zamiast date(‘Y’) wpisać kolejny rok. To będzie najprostsze i najszybsze rozwiązanie. Jeśli skrypt zadziała poprawnie po kilku testach, wrócisz do date(‘Y’).

Jeśli nie chcesz zmieniać kodu, możesz ustawić w systemie operacyjnym żądaną datę. Wtedy PHP weźmie aktualną datę z systemu. Dopóki uruchamiasz kod lokalnie, to też może być rozwiązaniem prostym, choć pewnie wpływającym na Twoje pozostałe aktywności na komputerze.

Idealnie byłoby wyciągnąć ten kawałek kodu i uniezależnić go od daty (sprawiając, że będzie ona podawana jako argument do metody). Wtedy, w kodzie produkcyjnym będziesz przekazywał aktualną datę, a w testach jednostkowych możesz przygotować całą masę danych testowych, które sprawdzą różne przypadki.

dodał nowy komentarz

Dzięki Marcin,

dla mnie rzeczywiście nie ma aż takiego znaczenia numeracja tych faktur bo nawet duży błąd nie położy biznesu na łopatki (zawsze można z ręki w phpMyAdmin w styczniu nadać ręcznie numer pierwszej wystawionej fakturze na 1/rok_bierzacy a dalej idzie już ok). Najwazniejsze że wszystko mi już działa 😁 miłego weekendu

PS. Jeszcze się nie zabrałem za zgłębianie Twojego nowego projektu Laravel ale na pewno na dniach się za to wezmę bo to jak raz temat pasujący do tego co robię aktualnie.

Dodaj komentarz
Wpisz swoją odpowiedź.
Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.