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

  • Elly

    Elly

    3 EKİM 2005
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012