Sahte bir nesne içinde bir değişkeni nasıl ayarlanır

3 Cevap php

Sahte bir nesne içinde bir sınıf düzeyi değişkeni ayarlamak için herhangi bir yolu var mı?

Ben alay nesnesi buna benzer ayarlanmış:

$stub = $this->getMock('SokmeClass', array('method'));
$stub->expects($this->once())
         ->method('method')
         ->with($this->equalTo($arg1));

Düzgün çalışması için ayarlanması gereken bir değişken olduğu gerçek bir sınıf kazanın. Nasıl bir mock nesne içindeki değişken ayarlayabilirsiniz?

3 Cevap

Bir saplama fikri çift (isteğe bağlı olarak) döner dönüş değerlerini yapılandırılmış aynı yöntem arayüz sunan bir test ile bir bağımlılık değiştirmektir. O bağımlılık gibi bu şekilde, SUT double çalışabilirsiniz. Eğer saplama Belirli bir dönüş değeri gerekiyorsa, sadece örneğin, geri dönmek gerektiğini anlatmamız:

// Create a stub for the SomeClass class.
$stub = $this->getMock('SomeClass');

// Configure the stub.
$stub->expects($this->any())
     ->method('doSomething')
     ->will($this->returnArgument(0));

$stub->doSomething('foo'); // returns foo

Bkz http://www.phpunit.de/manual/current/en/test-doubles.html

Neden bu işleri biliyorum ama benim için görünüyor etmeyin. Eğer geçersiz kılınmış yöntemlerden biri olarak __get sihirli yöntemini koyarsanız, örneğin

$mock = $this->getMock('Mail', array('__get'));

Daha sonra başarılı bir şekilde yapmak yapabilirsiniz

$mock->transport = 'smtp';

İşte benim için çalışıyor:

$stub = $this->getMock('SomeClass');
$stub->myvar = "Value";