2010-03-26 20 views
12

Halihazırda test yapabilmek için Ünite testinde ve özellikle PHPUnit'da yeniyim.Birim test dosyası işlemleri - sahte dizin yapısını korumak nerede?

Bir yükleyici sınıfı için birim sınama yapıyorum. Sınıf, iki dizinde (global ve kullanıcıya özgü olan) yüklenecek kaynakları arar.

Sınıfı test etmek için, bazı kaynak dosyalarını içeren bir sahte test dizini kurmak istiyorum. Sahte dizini test paketinin içinde bir yere koymak istiyorum (paket dağıtılacak bir web uygulamasının bir parçasıdır.)

PHPUnit testi bağlamında bu sınama dizinini nereye koyacağınız için bir kural var mı? Suite, here özetlenen dosya sistemi kullanılarak oluşturuldu?

Böyle bir sahte dizine, tam konumunu, yani geçerli test paketine göre bir yolu belirtmek zorunda kalmadan, bir birim testinin içinden erişmek için bir yol (örneğin, testi çalıştırdığında PHPUnit tarafından belirlenen bir sabit) var mı? Yoksa sadece dirname(__FILE__) kullanıyor ve bundan tam bir yol mu yazıyor?

cevap

15

Kaynak yükleyici, dizinlerdeki dosyaları arar ve yükleyicinin bu dizinlerle doğru etkileşimini test etmek istediğinizden, mock the filesystem. Gerçek bir dizinle test ederseniz, test sonuçlarını etkileyebilecek bu dizinlere dışarıdan bir değişiklik yapma riskiyle karşı karşıyasınız. Vfs kullanımı da daha hızlı çok olduğunu.