有没有办法在使用phpunit进行单元测试时对从'error_log("Message")调用创建的输出运行测试?
示例代码,我的一个函数使用luhn算法测试信用卡:
if($checkLuhn && ($this->_luhn_check($cardNumber) == false)) {
error_log(__METHOD__ . " cardNumber failed luhn algorithm check.");
return false;
}
Run Code Online (Sandbox Code Playgroud)
$ checkLuhn是传入的布尔值,告诉它是否进行检查,如果$ cardNumber通过,_luhn_check()返回true.问题是,我在这个函数中有多个测试可以返回false.我可以在返回值上使用assertEquals,但也想检查抛出错误的原因.
您可以覆盖error_log或以其他方式在单元测试中获取syslog输出吗?
是否有人知道在 FedEx Web 服务 RateRequest (SOAP) 查询的响应中生成关税和税款需要哪些字段?我已经被搁置了多天,等待他们的网络服务团队的回音,并让一位经理垂涎三尺,试图从我们的运费模块中获得关税和税收估算。
我已经尝试了所有我能想到和/或从关于 Soap 服务的稀疏文档中收集到的东西。这是我发送的示例查询(php SoapClient 数据):
RateRequest::__set_state(array(
'WebAuthenticationDetail' =>
stdClass::__set_state(array(
'UserCredential' =>
stdClass::__set_state(array(
'Key' => '*fedexkey*',
'Password' => '*fedexpassword*',
)),
)),
'ClientDetail' =>
stdClass::__set_state(array(
'AccountNumber' => '*accountnumber*',
'MeterNumber' => '*meternumber*',
)),
'TransactionDetail' =>
stdClass::__set_state(array(
'CustomerTransactionId' => 1,
)),
'Version' =>
stdClass::__set_state(array(
'ServiceId' => 'crs',
'Major' => 9,
'Intermediate' => 0,
'Minor' => 0,
)),
'ReturnTransitAndCommit' => true,
'CarrierCodes' => NULL,
'VariableOptions' => NULL,
'RequestedShipment' =>
stdClass::__set_state(array(
'DropoffType' => 'REGULAR_PICKUP',
'ShipTimestamp' => '2013-05-16T12:37:12-04:00',
'Shipper' => …Run Code Online (Sandbox Code Playgroud) 我们刚刚对网站进行了重新设计,在部署之后,我们必须对控制新外观和感觉的各种 css 和 javascript 文件进行一些小调整。我们遇到的问题之一是浏览器似乎缓存了这些文件,因此用户客户端可能看不到我们所做的一些修复。
我们最初想对文件的 mtime 做一些事情,作为“快速修复”黑客,我们使用 url 参数修改了对这些文件的一些主要调用,该参数使用服务器端 php 附加相关文件的最新 mtime 。但这并没有按计划工作,因为我们的部署系统克隆了一个 git 分支,因此,每个部署最终都会触及每个文件并改变其运行时间。(最终结果是,部署一个小修复最终会告诉客户端浏览器重新加载部署后修改的每个<LINK>或<Script>标记,无论文件内容是否实际上已更改。)
我正在查看 apache FileETag,但它似乎使用 mtime、大小和 inode。(我希望找到类似校验和的东西) mtime 显然不适用于我们使用的部署方法,如果更改不改变文件的长度,则大小可能不会改变。我不太熟悉索引节点信息的工作原理,所以我不确定这是否符合我们的需求。
所以我想知道是否有人还有其他建议,告诉客户端浏览器仅在文件内容实际更改时重新加载文件。
在看到我们的apache日志中出现的一些错误之后,我一直在试图找出'为什么'.与preg_match命令相关的错误,我试图找到以反斜杠字符开头的字符串:
preg_match('/^\\/',$str)
Run Code Online (Sandbox Code Playgroud)
它报告"preg_match():没有结束分隔符'/'发现"
出于好奇,我尝试了双重而不是单引号,以及1到6个反斜杠的组合,它总是报告相同的错误.(我最终将测试切换到if(substr($ str,0,1)=="\"){}而不是暂时的)
我下载了Android Studio的副本以及Galaxy设备的某些外观(注3,注4,注5,选项卡10 7“),并希望将这些外观导入“虚拟设备配置”屏幕。我看到“导入硬件“个人档案”的按钮,并将其指向带有皮肤的文件夹(hardware.ini文件),但它似乎从不导入任何内容或将我尝试导入的皮肤添加到列表中的任何位置。有人告诉我如何将Samsung外观导入Android Studio的虚拟设备管理器吗?
android android-studio virtual-device-manager samsung-galaxy
php ×3
android ×1
apache2 ×1
backslash ×1
caching ×1
css ×1
delimiter ×1
fedex ×1
javascript ×1
phpunit ×1
preg-match ×1
regex ×1
soap ×1
syslog ×1
unit-testing ×1
web-services ×1
xml ×1