Manual:Test edilebilir PHP kodu yazma
PHPUnit testing
Contents
- Running the tests
- Generate code coverage
- Test edilebilir PHP kodu yazma
- Writing tests
- Continuous integration
- Understanding build failures
- Appendix
(how to help, resources..)
Tools
Bir noktada test edilecek test, kod, üzerine bazı notlar genişletilecek.
Küresel bağlam varsaymayın
Genel değişkenlere (ör. $wgRequest
) önce global
anahtar kelimesi ile bildirmeden erişmek, küresel olmayan bir bağlamda erişilirse hataların ve E_NOTICE iletilerinin oluşturulmasına neden olur.
Yeni küresel değişkenleri oluşturmayın
Küresel değişkenlere bilgi koymak kolay görünse de, kodu daha az tahmin edilebilir kılar. Küresel değişkenlere güvenerek, işlevselliği izole etmeyi zorlaştırıyorsunuz. Tek bir sınıf, test için daha iyidir (ancak yine de idealden daha azdır).
Yalnızca doğrudan girdilere güvenin
Bu her zaman gerçekleştirilemese de, yalnızca doğrudan girişlere bağlı kod yazmak en iyisidir. Yani, bir sınıf yalnızca iletilen bilgileri kullanır ve “bant dışı” bilgi almak için tektonlara veya küresellere güvenmez.
<span id="Do_not_use_exit()
">
exit()
kullanmayın
Bir betikden aniden çıkmak neredeyse hiç yapılmamalıdır. Bunu yapmak kodunuzu PHPUnit tarafından test edilemez hale getirecektir. Kodunuz beklenmedik bir hatayla karşılaşırsa, yapılacak en uygun şey aşağıdaki gibi bir istisna atmaktır:
throw new MWException( "Oh noes!" );
Bu, PHPUnit ve MediaWiki'nin düzgün şekilde çıkmasına ve geliştiricilere yığın izleri gibi bilgilendirici bilgiler sağlamasına olanak tanır.