加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

数据提供的最佳实践 – PHPUnit

发布时间:2020-12-13 18:21:58 所属栏目:PHP教程 来源:网络整理
导读:我正在为一个库编写单元测试,在从数据重构业务逻辑之后,我现在对如何测试逻辑有点困惑! 例如,我有一个非常复杂的过程,其中传递了一组数据,我将使用数据提供程序,因此我可以确保它适用于各种情况. 有了我将通过数据提供者传递的数据,我是否也应该通过预期的
我正在为一个库编写单元测试,在从数据重构业务逻辑之后,我现在对如何测试逻辑有点困惑!

例如,我有一个非常复杂的过程,其中传递了一组数据,我将使用数据提供程序,因此我可以确保它适用于各种情况.

有了我将通过数据提供者传递的数据,我是否也应该通过预期的结果?或者应该在测试中计算出来.

如上所述,计算过程是一个非常复杂的过程,不是$a $b.

对于数据提供者,我也提供了预期的结果.由于我希望该方法获取输入并返回一个值,我不想实现两次计算,因为其中一个实现可能有错误.

我不想使用模拟,因为我实际上正在测试有问题的方法/函数.

如果我们基于4个参数计算某些东西,那么我的数据提供者将通过5.第一个参数是预期结果,后面是要传递给方法/函数的参数.

从这一点来说,我的呼吁很简单:

public static function GetRemoteAddressFromWebServerDataProvider()
{
    return array(
        array('127.0.0.1',NULL,'127.0.0.1'),array('127.0.0.1','127.0.0.1',NULL),);
}

/**
 * @dataProvider GetRemoteAddressFromWebServerDataProvider
 */
public function testGetRemoteAddressFromWebServer($Result,$HTTPXSetting,$RemoteAddress)
{
    $_SERVER['HTTP_X_FORWARDED_FOR'] = $HTTPXSetting;
    $_SERVER['REMOTE_ADDR']          = $RemoteAddress;
    $this->assertEquals($Result,GetRemoteAddressFromWebServer());
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读