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

  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • Plugable

    Plugable

    19 Mayıs 2010
  • TheSalband Rai

    TheSalband R

    11 NİSAN 2011