Nopea huomautus yksikkötestauskoodista WordPress-projekteissa
Mitä enemmän työskentelen WordPressissä, sitä enemmän yritän tehdä yksikkötestauksesta yhtä paljon kehittämistäni kuin varsinaisen ominaisuusjoukon rakentamisen. (Se on se, mitä kaikki ammattilaiset sanovat, että meidän on tehtävä joka tapauksessa.)
Mutta vakavasti, se parantaa laatua, koska jos ei jostain muusta syystä jokin hajoaa, voit nähdä, mikä testi epäonnistuu tai vaikka olisit jäänyt kattamatta jollakin alueella.
En ole joidenkin mielestä 100-prosenttinen koodipeitto (ja on syitä siihen, miksi luulen tämän), mutta mielestäni on tärkeää, että koodi kattaa mahdollisimman paljon koodia, joka ei ole suoraan WordPressiin.
Testauskoodi WordPressissä
En tiedä, kuulostaako se hämmentävältä vai ei, mutta yksi ansoista, joihin jouduin varhain työskennellessäni yksikkötestauksen ja WordPressin parissa, oli testien kirjoittaminen WordPress-ydinkoodia vastaan.
Teen tätä edelleen joskus (ja voit kysyä niiltä, joiden kanssa työskentelen, onko tämä totta), vaikka olenkin paranemassa.
Minusta WordPressiä voidaan pitää mustana laatikkona. Se on perusta, jolla sovelluksesi elää. WordPress-ytimen ympärillä on jo testejä. Pitäisikö olla enemmän? Varma. Riittääkö se mitä heillä on? Kokemukseni mukaan kyllä, mutta me kaikki käytämme erilaista mainittujen ominaisuuksien alajoukkoa.
Asia, jonka ymmärrän, on seuraava: Joka kerta kun työskentelet projektin parissa, joka on rakennettu WordPressiin; sinun ei tarvitse kirjoittaa testejä koodia vastaan, kuten add_menu_pagetai wp_enqueue_script.
Tiedämme, että nämä toiminnot toimivat.
Keskity sen sijaan verkkotunnuksellesi kuuluvaan koodiin. Keskity siis siihen koodiin, jonka sinä ja tiimisi kirjoitat. Se on erikoisala, joka on ainutlaatuinen projektissa, ja se on viime kädessä vastuussa tietyn ongelman ratkaisemisesta.
Jos pyrit saamaan 100 % kattavuuden vain 100 % kattavuuden vuoksi, et kirjoita yksikkötestejä oikeasta syystä. Pyri sen sijaan siihen, että koodin kattavuus on korkein, joka testaa koodisi riittävästi. Se takaa laadun.