它能够测试两次输出吗?
这是代码测试输出两次
<?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不,我不测试不同的事情..我测试自动触发器是否真的关闭..如果自动触发器关闭,我需要调用触发器方法来触发侦听器。如果它启动,我不需要调用触发器,因为事件已设置,所以它是自动触发的。请帮助 –