Часть тестирования, которое я должен буду сделать, потребует сравнения известного массива с результатом, который я получаю от функций, которые я буду выполнять.
Для сравнения массивов рекурсивно:
Да, это так. assertEquals ()
и assertNotEquals ()
документация .
В частности:
assertEquals ()
assertEquals (смешанный $ ожидаемый, смешанный $ фактический [, строка $ message = ''])
Сообщает об ошибке, идентифицированной
$ message
, если две переменные$ expected
и$ actual
не равны.
assertNotEquals ()
является обратным этому утверждению и принимает те же аргументы.
Код проверки:
public function testArraysEqual() {
$arr1 = array( 'hello' => 'a', 'goodbye' => 'b');
$arr2 = array( 'hello' => 'a', 'goodbye' => 'b');
$this->assertEquals($arr1, $arr2);
}
public function testArraysNotEqual() {
$arr1 = array( 'hello' => 'a', 'goodbye' => 'b');
$arr2 = array( 'hello' => 'b', 'goodbye' => 'a');
$this->assertNotEquals($arr1, $arr2);
}
[РЕДАКТИРОВАТЬ]
Вот код для неупорядоченных списков aLists:
public function testArraysEqualReverse() {
$arr1 = array( 'hello' => 'a', 'goodbye' => 'b');
$arr2 = array( 'goodbye' => 'b', 'hello' => 'a');
$this->assertEquals($arr1, $arr2);
}
Этот тест не проходит:
public function testArraysOutOfOrderEqual() {
$arr1 = array( 'a', 'b');
$arr2 = array( 'b', 'a');
$this->assertEquals($arr1, $arr2);
}
С сообщением:
Failed asserting that
Array
(
[0] => b
[1] => a
)
is equal to
Array
(
[0] => a
[1] => b
)