我正在为一个库编写单元测试,在从数据重构业务逻辑之后,我现在对如何测试逻辑有点困惑!
例如,我有一个非常复杂的过程,其中传递了一组数据,我将使用数据提供程序,因此我可以确保它适用于各种情况.
有了我将通过数据提供者传递的数据,我是否也应该通过预期的结果?或者应该在测试中计算出来.
如上所述,计算过程是一个非常复杂的过程,不是$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()); }
原文地址:https://www.jb51.cc/php/135547.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。