【发布时间】:2019-12-08 14:26:35
【问题描述】:
我有一个由 composer autoload 加载的函数
"autoload": {
"files": [
"app/Helpers/SmsHelper.php",
]
},
这个文件有一个smsHelper函数,可以发送短信。
<?php
if (!function_exists('sendSmsHelper')) {
function sendSmsHelper($msisdn, $message)
{
..... Codes
}
}
我的一个班级使用这个助手,我想为这个班级编写测试。 有人能告诉我如何模拟这个功能吗?因为我不想在测试模式下发送短信
【问题讨论】:
-
只需在tests/bootstrap.php中定义函数
-
嗨,米歇尔!让我看看你的解决方案
-
我检查了它,米歇尔,但我得到了这个错误:致命错误:无法重新声明 smsHelper()(之前声明..作曲家加载了一次,不让我重写它!你有任何重写的解决方案吗? ?
-
你必须在你的 composer autoload.php 被加载之前声明测试函数,因为它也会加载辅助函数然后检查
function_exists -
我知道我必须先加载我的文件(仅在测试模式下)!但是怎么做呢?可以从代码中获得吗?或任何防止作曲家在测试模式下加载文件的解决方案!甚至让我重写一些文件
标签: php unit-testing laravel-5 mocking