[英]Unit testing date sensitive functions?
我正在尝试为日期帮助程序类编写测试。 我想知道什么是最佳做法。
这是PHP中的示例。
public static function get_date($offset = 0){
$date = mktime(0, 0, 0, date('m') , date('d') + $offset, date('Y'));
return array(
'day' => date('D',$date),
'month' => date('M',$date),
'year' => date('Y',$date)
);
}
public static function today(){
return self::get_date();
}
public static function tomorrow(){
return self::get_date(1);
}
public static function yesterday(){
return self::get_date(-1);
}
因此,我要寻找的是可以测试这些功能的测试示例,或者是一种新的编写这些功能的方法,以便可以直观地对其进行测试。
我在Java中找到了一些示例,但它们看起来非常雅致,我真的不懂Java,除非您将Actionscript 3视为Java;)
作为示例,使用Javascript或Ruby解决方案也非常有用,但是我的课程是用PHP编写的,因此非常理想。
谢谢!
我通常会这样:
<?php
class Date
{
protected $date;
public function __construct($date = null)
{
$this->date = $date ? $date : time();
}
public function today()
{
// to something with $this->date
}
}
class DateTest extends PHPUnit_Framework_TestCase
{
public function testToday()
{
$date = new Date(strtotime('2010-10-17 00:00:00'));
$this->assertEquals($expectedValue, $date->today());
}
}
它遵循与date()
相同的原理,即接收第二个可选参数,即参考时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.