[英]Unit Testing services in Symfony2
我是應用程序測試和Symfony2的新手,所以我有一個問題。 例如,我有一些服務,一個發送郵件( $this->mailer->send($message)
),第二個對實體實例做一些事情,然后返回一個持久化的實例,所以在第一種情況下,我需要僅檢查assertTrue()
(是否發送)? 但是什么需要檢查第二個呢? 有人可以幫我嗎?
實際上,這是一個相當廣泛的問題。 我在測試“修改”實體的服務時通常做的一個例子如下:
Service Adder
更新了實體的狀態:基於另一個實體向該實體添加值並在持久之前設置正確的值。
// src/Acme/DemoBundle/Tests/Service/AdderTest.php
namespace Acme\DemoBundle\Tests\Service;
use Acme\DemoBundle\Service\Adder;
use Acme\DemoBundle\Entity\One;
use Acme\DemoBundle\Entity\Two;
class AdderTest extends \PHPUnit_Framework_TestCase
{
public function testAdd()
{
$add = new Adder();
$ent1 = new One();
$ent2 = new Two();
$ent2->setValue(1);
$add->setOne($ent1);
$add->setTwo($ent2);
$add->updateEntity();// $ent1->setValue($ent2->getValue()+1);
$this->assertEquals(2, $ent1->getValue());// Expected state of $ent1
}
}
當然,它通常會變得更復雜,但是至少它可以使您了解如何啟動(使用服務來更新實體的狀態並檢查實體的新狀態是否是預期的狀態)。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.