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

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • Kupa World

    Kupa World

    1 EYLÜL 2011