Yaptığım bir projeye bir test çerçevesini dahil etmek istiyorum ve beğendiğim Enhance PHP'a rastlıyorum ama "php'yi geliştirdiğinden" bu konuyla ilgili bilgileri çevrimiçi bulmakta zorluk çekiyorum. yaygın olarak kullanılan bir ifade."PHP'yi Geliştirin" ile Başlayın
Bu çerçeveyle çalışan herhangi biri, yararlı bir kılavuza yönlendirebileceğimi düşündü mü? İnanılmaz derecede daha iyi olduğunu düşündüğünüz bir birim test çerçevesiyle çalıştınız mı?
Şimdiden teşekkürler. Gotzofter cevaben
, bu sınıf test edilecek geçerli: ExampleClass benim yapıcı az
<?php
include_once('EnhanceTestFramework.php');
class ExampleClass
{
private $OtherClass;
function __construct($mock = null)
{
if ($mock == null)
$this->OtherClass = new OtherExampleClass();
else
$this->OtherClass = $mock;
}
public function doSomething()
{
return $this->OtherClass->getSomething(1, 'Arg2');
}
}
class OtherExampleClass
{
public function getSomething()
{
return "Something";
}
}
class ExampleClassTests extends \Enhance\TestFixture
{
public function setUp()
{
}
public function tearDown()
{
}
public function verifyWithAMock()
{
$mock = \Enhance\MockFactory::createMock('OtherExampleClass');
$mock->addExpectation(
\Enhance\Expect::method('getSomething')
->with(1, 'Arg2')
->returns('Something')
->times(1)
);
$target = new ExampleClass($mock);
$result = $target->doSomething();
\Enhance\Assert::areIdentical("Something", $result);
$mock->verifyExpectations();
}
}
\Enhance\Core::runTests();
bakış.
Geliştiriciden-php'nin site örneği $ Örnek nesnesini ($ mock) çağırarak $ alay nesnesini enjekte ettiğinden, bir örnek parametresi olarak $ alayını işlemek için ExampleClass yapıcımı değiştirmeye zorlanıyorum.
Bunu, çerçeve ile birim testine tabi tutmak istediğim tüm sınıflar için halletmem gerekiyor mu?
Teşekkürler.
[enhance-php.com] (http://www.enhance-php.com) bir [Hızlı Başlangıç Kılavuzu] (http://www.enhance-php.com/Content/Quick-Start-Guide içeriyor /) ve [tüm önemli özellikleri iyi belgelere] var gibi de görünüyor (http://www.enhance-php.com/Content/Documentation/). Tam olarak bunun ötesinde ne arıyorsun? –
[PHPUnit] (http://phpunit.de) fiili birim test çerçevedir. TBH Hiç Enhance'u hiç duymadım (bunu ucuza çekmeyin, sadece dürüst olun). –
@Colin - Belki sadece Mock kullanımını anlamıyorum. Bu kılavuzdaki talimatları izleyerek beklediğim sonuçları alamıyorum. Orijinal yazıya – baiano