在數據提供者的基礎上進行對報名人數限制的測試:
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