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

  • L33TNoonProductions

    L33TNoonProd

    24 EYLÜL 2010
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011