Current Location: Home> Latest Articles> Use array_fill() to simulate data fill for unit testing

Use array_fill() to simulate data fill for unit testing

M66 2025-06-05

In PHP development, unit testing is an important method of quality assurance. In order to effectively test the logic of a program, we often need to simulate a large amount of data input. The built-in function array_fill() of PHP can quickly generate a specified number of array elements, which is very suitable for simulating data fill and simplifying the preparation of unit tests.

What is array_fill()?

The array_fill() function is used to create an array containing a specified number and all elements are the same. The basic syntax is as follows:

 array_fill(int $start_index, int $count, mixed $value): array
  • $start_index : The starting index of the array.

  • $count : The number of elements to be filled.

  • $value : The value used to fill.

Let's give a simple example:

 $arr = array_fill(0, 5, 'test');
print_r($arr);

Output:

 Array
(
    [0] => test
    [1] => test
    [2] => test
    [3] => test
    [4] => test
)

Simulate data in unit tests

Suppose you need to test a function that processes user information, and you don't want to manually prepare a large amount of data every time, array_fill() can help you generate unified test data.

 function processUsers(array $users) {
    // Assume processing of user information,Return number of users
    return count($users);
}

// use array_fill generate 100 Simulated user data
$mockUsers = array_fill(0, 100, [
    'id' => 0,
    'name' => 'Test User',
    'email' => 'user@m66.net'
]);

echo processUsers($mockUsers); // Output 100

In the above example, 100 user data with a unified format are simulated to facilitate performance and logic testing of batch processing functions.

Customize fill objects and complex structures

For more complex data structures, you can also use array_fill() to form a basic array with anonymous functions or loops, and then adjust some data through traversal.

 $mockUsers = array_fill(0, 10, null);

foreach ($mockUsers as $index => &$user) {
    $user = [
        'id' => $index + 1,
        'name' => "User {$index}",
        'email' => "user{$index}@m66.net"
    ];
}
unset($user);

print_r($mockUsers);

This will keep each simulated data unique and closer to the real business scenario.

Conclusion

array_fill() is a concise and efficient array generation function in PHP, which can greatly simplify the data preparation of unit tests. Whether it is to uniformly fill simple values ​​or to generate complex structures in combination with loops, it can help developers build test cases faster and improve test efficiency and code quality.