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

在单元测试中模拟PHP功能

发布时间:2020-12-13 16:38:05 所属栏目:PHP教程 来源:网络整理
导读:我用SimpleTest对一些 PHP代码进行单元测试,我遇到麻烦.在我的数据库类的测试中,我希望能够设置PHP的mysql函数的期望值.在我的邮件功能的包装类的测试中,我想模拟PHP的邮件功能.这些只是一些例子. 关键是:我不(总是)想测试我的邮件类是否发送电子邮件,我想
我用SimpleTest对一些 PHP代码进行单元测试,我遇到麻烦.在我的数据库类的测试中,我希望能够设置PHP的mysql函数的期望值.在我的邮件功能的包装类的测试中,我想模拟PHP的邮件功能.这些只是一些例子.

关键是:我不(总是)想测试我的邮件类是否发送电子邮件,我想测试如何调用邮件功能.我想要能够控制这些函数返回.我想要能够测试我的数据库类,而不需要数据库,灯具等等.

我有一些测试Ruby代码的经验,Test :: Unit和RSpec使得隔离测试代码变得非常简单.我是新来测试PHP,感觉我正在测试比我需要的更多,以便让我的测试通过.

在SimpleTest或PhpUnit还是其他一些测试框架中有一种方法可以实现或者简化?

不是以自动的方式.你可以做的是写一个这样的方式,使得外部依赖关系被包裹在从外部传入的对象中.在您的生产环境中,您只需连接真实的适配器,但在测试期间,您可以将其连接到存根或模拟.

如果您真的坚持,您可以使用更改php编程模型的runkit extension,以便您可以在运行时重新定义类和函数.这是一个外部和非标准的扩展,但是,请记住. defacto标准是如上所述的手动方法.

(编辑:李大同)

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

    推荐文章
      热点阅读