在数据提供者的基础上进行对报名人数限制的测试:
public function testAttendeeLimitReserve($eventId, $eventName, $eventStartDate, $eventEndDate, $eventAttendLimit) {
// 测试报名人数限制
$event = new \PHPUnitEventDemo\Event($eventId, $eventName, $eventStartDate, $eventEndDate, $eventAttendLimit);
$userNumber = 6;
// 建立不同使用者报名
for ($userCount = 1; $userCount < $userNumber; $userCount++) {
$userId = $userCount;
$userName = 'User ' . $userId;
$userEmail = 'user' . $userId . '@zoco.space';
$user = new \PHPUnitEventDemo\User($userId, $userName, $userEmail);
$reservedResult = $event->reserve($user);
// 报名人數是否超过
if ($userCount > $eventAttendLimit) {
// 无法报名
$this->assertFalse($reservedResult);
} else {
$this->assertTrue($reservedResult);
}
}
}
Fixture能协助建立测试时需要用到的测试环境,对象的建立,在测试完后,把测试环境,对象析构掉,还原到初始化前的状态。
原文转自:http://www.jianshu.com/p/ba6829a6f3ec