gpt4 book ai didi

php - 单元测试日期敏感功能?

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:27 24 4
gpt4 key购买 nike

我正在尝试为日期助手类编写测试。我想知道对此的最佳做法是什么。
这是一个 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 中的解决方案作为示例也非常有用,但我的类(class)是用 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() 相同的原则,即接收第二个可选参数,即引用时间。

关于php - 单元测试日期敏感功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3955179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com