Phpunit 测试几个方法以正确验证传递的参数
我有几个方法采用相同的参数(user\u id)。在这些方法中,我测试传递的参数是否为有效的八位数整数。 是否有可能将(?)测试分组以测试传递参数的有效性Phpunit 测试几个方法以正确验证传递的参数,phpunit,Phpunit,我有几个方法采用相同的参数(user\u id)。在这些方法中,我测试传递的参数是否为有效的八位数整数。 是否有可能将(?)测试分组以测试传递参数的有效性 Class Hello{ public function test($user_id=0){ if (!preg_match('/^[0-9]{8}$/', $user_id)) return false; do stuff... } public function make($user_id=0){ if (!preg_match('/
Class Hello{
public function test($user_id=0){
if (!preg_match('/^[0-9]{8}$/', $user_id)) return false;
do stuff...
}
public function make($user_id=0){
if (!preg_match('/^[0-9]{8}$/', $user_id)) return false;
do stuff...
}
public function find($user_id=0){
if (!preg_match('/^[0-9]{8}$/', $user_id)) return false;
do stuff...
}
}
和测试文件:
class HelloTest extends PHPUnit_Framework_TestCase {
//Looking for something simpler to replace that:
// zwraca FALSE jesli dlugosc inna niz 8 znakow
$this->assertFalse(Hello::test('1'), 'Dlugosc user_id musi byc 8 znakow, nie 1.');
$this->assertFalse(Hello::test(0), 'Dlugosc user_id musi byc 8 znakow, nie 1 (zero).');
$this->assertFalse(Hello::test('7777777'), 'Dlugosc user_id musi byc 8 znakow, nie 7.');
$this->assertFalse(Hello::make('1'), 'Dlugosc user_id musi byc 8 znakow, nie 1.');
$this->assertFalse(Hello::make(0), 'Dlugosc user_id musi byc 8 znakow, nie 1 (zero).');
$this->assertFalse(Hello::make('7777777'), 'Dlugosc user_id musi byc 8 znakow, nie 7.');
$this->assertFalse(Hello::find('1'), 'Dlugosc user_id musi byc 8 znakow, nie 1.');
$this->assertFalse(Hello::find(0), 'Dlugosc user_id musi byc 8 znakow, nie 1 (zero).');
$this->assertFalse(Hello::find('7777777'), 'Dlugosc user_id musi byc 8 znakow, nie 7.');
}
在中,可以使用数据提供程序将值传递给测试。我这样做,并包括预期的响应值
<?php
class HelloTest extends PHPUnit_Framework_TestCase
{
public function UserIdDataProvider()
{
return array(
array('1', FALSE, 'Dlugosc user_id musi byc 8 znakow, nie 1.'),
array(0, FALSE, 'Dlugosc user_id musi byc 8 znakow, nie 1 (zero).'),
array('7777777', FALSE, 'Dlugosc user_id musi byc 8 znakow, nie 7.'),
array('88888888', TRUE, ''),
);
}
/**
* @dataProvider UserIdDataProvider
*/
public function testUserIdTest($UserId, $Result, $Message)
{
$this->assertEquals($Result, Hello::test($UserId), $Message);
}
/**
* @dataProvider UserIdDataProvider
*/
public function testUserMake($UserId, $Result, $Message)
{
$this->assertEquals($Result, Hello::make($UserId), $Message);
}
/**
* @dataProvider UserIdDataProvider
*/
public function testUserIdFind($UserId, $Result, $Message)
{
$this->assertEquals($Result, Hello::find($UserId), $Message);
}
}
?>
您是否从任何愿意接受的人那里得到了令人满意的答案,或者这些建议仍然存在问题?