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

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • girleffect

    girleffect

    20 Mayıs 2008
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011