Entegrasyon testi sırasında aslında dinlendirici API'lerle (veya genel HTTP arayüzlerinde) tekrarlayan kullanım vakaları üzerinde çalıştığımı fark ettim. Burada ve orada bash + cURL ile kontrol ediyorum.
Oldukça dağınık görünmeye başlar ve bakımı zorlaşır. Neden dağınıklık?
Tipik kullanım durumları:
- Bir URL'nin http yanıt kodu döndürdüğünü kontrol edin, örn. 200
- İçerik türünün bu durumda ihtiyacınız olan MIME ile eşleştiğini kontrol edin
- Döndürülen içeriğin bir kalıpla eşleştiğini veya soyut bir doğrulama prosedürü geçip geçmediğini kontrol edin
Şimdiye kadar buldum ve tekerleği yeniden icat etmeden uygulanabilir bir seçenek düşünün:
- PyCurl ile bir gitmek var - bir umut olarak tüm cURL seçenekleri esp tamamen uygular. vekaleten değil, ihtiyacım olan diğer anahtarlar
- Python'un yerleşik birim testini kullan
Sonra, örneğin, kontrol etmek istediğim hizmet başına bir birim testi yapabilirdim:
import unittest, pycurl
class TestService (unittest.TestCase):
def test_1(self):
self.assertEqual(pycurl.returncode("some_url"), 200)
def test_2(self):
self.assertTrue(pycurl.response("some_url").matches ("xxx") )
def test_3(self):
self.assertTrue (pycurl.ContentType("some_url").equal("xxx"))
if __name__ == '__main__':
unittest.main()
Bu anlamlı mı yoksa daha yüksek seviyeli (ancak almak ve entegre etmek için çok karmaşık değil) bir takım var mı?