SORU
10 Kasım 2008, PAZARTESİ


phpunit alay için yapıcı tartışma çıkmasın

Phpunit önlemek için alay bir nesne için yapıcı aramak zorunda nedir? Aksi takdirde yapıcı bir tartışma, vb için başka biri gibi sahte bir nesne gerekir. Apı bu gibi görünüyor:

getMock($className, $methods = array(), array $arguments = array(),
        $mockClassName = '', $callOriginalConstructor = TRUE,
        $callOriginalClone = TRUE, $callAutoload = TRUE)

O iş için alamadım. Hala yanlış $callOriginalConstructor set bile yapıcı tartışma hakkında şikayet ediyor.

Ben sadece yapıcı bir nesne var ve bir bağımlılık enjeksiyon. Tasarım bir sorun var sanmıyorum.

CEVAP
8 HAZİRAN 2011, ÇARŞAMBA


getMockBuilder yerine getMock sadece kullanabilirsiniz:

$mock = $this->getMockBuilder('class_name')
    ->disableOriginalConstructor()
    ->getMock();

Ayrıntılar için PHPUnit's documentation "Test Doubles" bkz.

Bunu yapabilirsiniz, ancak, çok daha iyi gerek yok. Beton sınıfı (kurucu) enjekte edilmesi gerek yerine, tek bir arayüz bağlıdır böylece kodunuzu yeniden Düzenle. Bu PHPUnit yapıcı davranışlarını değiştirmek için söylemeden alay veya saplama arayüzü anlamına gelir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • mipd1980

    mipd1980

    25 EKİM 2006