Copilot’tan test yazmasını isterken yalnız fonksiyonu vermeyin; beklenen davranışı ve önemli sınırları da belirtin. Aksi halde mevcut hatalı sonucu beklenen sonuç kabul eden testler üretebilir. Küçük bir saf fonksiyonda Python’un unittest modülüyle, ek paket kurmadan davranışı görünür hale getirebilirsiniz.
Para hesaplarının gerçek uygulamasında kayan nokta yuvarlaması ayrıca ele alınmalıdır; bu küçük test fiyatlandırma sisteminin tamamını doğrulamaz. Copilot’un katkısını test sayısıyla değil, yanlış bir davranışın bu örnekler tarafından yakalanmasıyla değerlendirin.
Önce iş kuralını yazın
Varsayımsal bir kargo hesabında 500 lira ve üzeri sipariş ücretsiz, altındaki sipariş 50 lira olsun. Negatif tutar kabul edilmesin. Burada özellikle 499,99 ile 500 arasındaki sınır önemlidir; yalnız 1000 liralık örnek, yanlış karşılaştırma işaretini yakalamaz.Testi üretin ve çalıştırın
- Fonksiyonu ayrı dosyada tutun. shipping.py içinde shipping_cost(total) bulunduğunu varsayın. Copilot’a bu fonksiyonun yan etkisiz olduğunu ve yukarıdaki kuralları verin.
- Beklentileri açıkça yazın. 0 için 50, 499.99 için 50, 500 için 0 ve negatif değer için ValueError beklediğinizi belirtin. Beklenen değerleri mevcut fonksiyonun döndürdüklerinden türetmemesini isteyin.
- Test dosyasını inceleyin. Aşağıdaki örnekte import yolunun gerçek dosyanızla aynı olduğundan emin olun. Kodun yaptığı işi okumadan çalıştırmayın.
Python:import unittest from shipping import shipping_cost class ShippingTests(unittest.TestCase): def test_threshold(self): for value, expected in [(0, 50), (499.99, 50), (500, 0)]: with self.subTest(value=value): self.assertEqual(shipping_cost(value), expected) def test_negative(self): with self.assertRaises(ValueError): shipping_cost(-1) if __name__ == '__main__': unittest.main()
- Testi proje kökünden çalıştırın. Dosyayı test_shipping.py adıyla kaydedip python -m unittest test_shipping komutunu verin. Sınır örnekleri aynı test yönteminde çalışsa da subTest başarısız girdiyi ayrı gösterir.
- Hatanın nedenini değerlendirin. 500 için ücret çıkıyorsa uygulamadaki eşik karşılaştırmasını inceleyin. Beklenen değeri sırf test geçsin diye 50’ye çevirmeyin.
Para hesaplarının gerçek uygulamasında kayan nokta yuvarlaması ayrıca ele alınmalıdır; bu küçük test fiyatlandırma sisteminin tamamını doğrulamaz. Copilot’un katkısını test sayısıyla değil, yanlış bir davranışın bu örnekler tarafından yakalanmasıyla değerlendirin.
Son düzenleme: