SORU
10 EKİM 2008, Cuma


Test Soyut Sınıflar

Nasıl PHPUnit ile soyut bir sınıf somut yöntemler test edebilirim?

Testin bir parçası olarak nesne bir tür yaratmak zorunda olduğumu söylerdim. Ama, hiçbir fikrim yok, bunun için en iyi uygulama var mı PHPUnit eğer bunun için izin verir.

CEVAP
10 ŞUBAT 2010, ÇARŞAMBA


Soyut sınıfların birim testi gerekli soyut sınıflar somut yöntemleri var gibi arayüzü test anlamına gelmez, ve bu somut yöntemler test edilebilir.

Uygulama katmanı genişletmek için beklediğiniz bazı temel sınıf olduğu için çok nadir bazı kütüphane kod yazarken değil. Ve eğer kütüphane kod test edilmiş olduğundan emin olmak istiyorsanız, soyut sınıfların somut yöntemleri UT anlamına geliyor.

Kişisel olarak, PHPUnit kullanıyorum ve çok koçanları ve mock nesneler bu tip şeyleri test etmek için bir çağrı var.

PHPUnit manual düz:

abstract class AbstractClass
{
    public function concreteMethod()
    {
        return $this->abstractMethod();
    }

    public abstract function abstractMethod();
}

class AbstractClassTest extends PHPUnit_Framework_TestCase
{
    public function testConcreteMethod()
    {
        $stub = $this->getMockForAbstractClass('AbstractClass');
        $stub->expects($this->any())
             ->method('abstractMethod')
             ->will($this->returnValue(TRUE));

        $this->assertTrue($stub->concreteMethod());
    }
}

Alay nesnesi birkaç şey ver:

  • soyut sınıf beton uygulaması için gerekli değildir, ve saplama ile yerine getirebilir
  • somut çağrı ve düzgün yaptıkları iddia edebilirsiniz
  • eğer beton yöntemi (Özet) uygulanmayan bir yönteme dayanır, irade ile dönüş değeri saplama() PHPUnit yöntemi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bach Vlogs

    Bach Vlogs

    18 HAZİRAN 2011
  • manadude21

    manadude21

    11 Mart 2008
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010