unit test - класс теста, отвечающий за тестирование методов одного класса
test case - это один метод теста, покрывающий один из вариантов его работы.
Например, если есть метод
class myClass {
public function myAwesomeMethod($i) {
return $i > 0 ? 1 : ($i == 0 ? 0 : -1);
}
}
возвращает
* 1, если параметр больше 0
* 0, если равен 0
* -1, если меньше 0
Это три кейса, которые надо покрыть.
Соответственно ваши кейсы будут в духе
public function myAwesomeMethodTest1() {
$myClassInstance = new myClass();
$result = $myClassInstance->myAwesomeMethod(15);
$this->assert($result, 1);
}
public function myAwesomeMethodTest2() {
$myClassInstance = new myClass();
$result = $myClassInstance->myAwesomeMethod(-10);
$this->assert($result, -1);
}
public function myAwesomeMethodTest3() {
$myClassInstance = new myClass();
$result = $myClassInstance->myAwesomeMethod(0);
$this->assert($result, 0);
}
Обратите внимание, что параметры я взял из головы. И в тестах так и должно делаться.
Теперь если ситуация у вашего validatePassword. test case'ы могут отличаться в зависимости от того, как ваша функция работает, но в целом это может быть типа(по вашей записи предположу, что метод у вас статический):
public function validatePasswordTest1() {
$result = PasswordValidator::validatePassword('qwe123rty');
$this->assert($result, true);
}
public function myAwesomeMethodTest2() {
$result = PasswordValidator::validatePassword('q1');
$this->assert($result, false);
}
public function myAwesomeMethodTest3() {
$result = PasswordValidator::validatePassword('qwe');
$this->assert($result, false);
}