小编Sim*_*mer的帖子

如何在php单元测试中模拟日期?

我是 php 单元测试的新手。如何在下面的函数中模拟日期。目前它正在获取当前日期。但我想将模拟中的日期更改为一个月的第一天。

function changeStartEndDate() {

    if (date('j', strtotime("now")) === '1') {

        $this->startDate = date("Y-n-j", strtotime("first day of previous month"));

        $this->endDate = date("Y-n-j", strtotime("last day of previous month")) . ')';
    } else {

        $this->startDate = date("Y-n-j", strtotime(date("Y-m-01")));
        $this->endDate = date("Y-n-j", strtotime("yesterday"));
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过这样做,但它不起作用。

public function testServicesChangeStartEndDate() {
    $mock = $this->getMockBuilder('CoreFunctions')
        ->setMethods(array('changeStartEndDate'))
        ->getMock();

    $mock->method('changeStartEndDate')
        ->with(date("Y-n-j", strtotime(date("Y-m-01"))));

    $this->assertSame(
        '1',
        $this->core->changeStartEndDate()
    );

}
Run Code Online (Sandbox Code Playgroud)

php phpunit

3
推荐指数
1
解决办法
1942
查看次数

爆炸结果然后内爆PHP

我得到一个列的内容,其内容存储为3,2然后我使用explode函数来分隔它们.然后,分隔的值用于查询另一个表以引入名称.接下来我想破坏汉堡,薯条等结果.但结果并没有用逗号分隔,而是像汉堡包......这就是我所做的:

$sql = "SELECT items FROM orders";
$result = mysqli_query($connection, $sql);
$array = mysqli_fetch_assoc($result);

$exploded = explode(",", $array['items']);

foreach ($exploded as $row){
    $query = "SELECT food_name FROM foodlist WHERE food_id = $row";
    $res = mysqli_query($connection, $query);
    $arr = mysqli_fetch_assoc($res);

    $imploded = implode(", ", $arr);

    echo $imploded;

}
Run Code Online (Sandbox Code Playgroud)

php mysql

0
推荐指数
1
解决办法
453
查看次数

标签 统计

php ×2

mysql ×1

phpunit ×1