Скажем, у меня есть этот метод в RuleFactory:Тестовые содержимое возвращаемого массива в PHPSpec
public function makeFromArray($rules)
{
$array = [];
foreach ($rules as $rule) {
$array[] = new Rule($rule[0], $rule[1]);
}
return $array;
}
Я хочу, чтобы проверить, что возвращение массив содержит элементы Rule. Вот мой тест:
function it_should_create_multiple_rules_at_once()
{
$rules = [
['required', 'Please provide your first name'],
['alpha', 'Please provide a valid first name']
];
$this->makeFromArray($rules)->shouldHaveCount(2);
$this->makeFromArray($rules)[0]->shouldBeInstanceOf('Rule');
$this->makeFromArray($rules)[1]->shouldBeInstanceOf('Rule');
}
Но это не работает, оно вызывает ошибку в PHPSpec.
Странно, что я могу сделать это просто отлично на других методах, возвращающих массивы, но по какой-то причине я не могу этого сделать.
Ошибки я получаю это:
! it should create multiple rules at once
method [array:2] not found
Как проверить содержимое этого возвращаемого массива, не создавая свой собственный встроенный Искатель?
Если "альфа" означает «допускать только буквенные символы», а затем - даже если это относится к юникоду - вы все равно исключаете таких людей, как https://en.wikipedia.org/wiki/Jean-Paul_Gaultier; постарайтесь быть более либеральными в вашей проверке персональных данных. –