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

  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Distractify

    Distractify

    1 Aralık 2011