繁体   English   中英

单元测试日期敏感功能?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM