它能夠測試兩次輸出嗎?
這是代碼測試輸出兩次
<?php
public function testAutoTriggerOff()
{
$user = array(
'id'=>1,
'name'=>'Andy',
'logTime'=> time()
);
$this->elevent->turnOffAutoTrigger();
$this->elevent->attach('Elevent\Test\Event\UserHasLoggedIn', new WelcomeUser);
$event = $this->elevent->setEvent('Elevent\Test\Event\UserHasLoggedIn', $user);
$this->expectOutputString('');
$this->elevent->trigger($event);
$this->expectOutputString('Welcome, Andy');
}
因此,SetEvent的調用後,我想測試沒有輸出..
而且,觸發調用後,我想測試輸出'歡迎,安迪'
該測試通過。
但是,如果我改變了第一次測試輸出到的東西,應該是假的,比如
$this->expectOutputString('this one should be false');
$this->elevent->trigger($event);
$this->expectOutputString('Welcome, Andy');
但是,測試也通過了。我預料它會失敗,因爲我想兩次測試輸出。
在觸發之前,它不應該輸出。
觸發後,輸出應該是'Welcome,Andy'
如何測試這種方式?
你真的在測試兩種不同的東西,所以你應該把它分成兩個單獨的單元測試。 – jeroen
@jeroen不,我不測試不同的事情..我測試自動觸發器是否真的關閉..如果自動觸發器關閉,我需要調用觸發器方法來觸發偵聽器。如果它啓動,我不需要調用觸發器,因爲事件已設置,所以它是自動觸發的。請幫助 –