【问题标题】:php unit test in silverstripeSilverstripe中的php单元测试
【发布时间】:2011-11-05 10:00:19
【问题描述】:

想知道如何开始在 siverstripe 中为此函数编写单元测试?

function getAvailableScanners($date){
        $scanners = self::get("Scanner");

        $startDate = date("Y-m-d", strtotime("-".self::$daysNeededAfterLastGig." days", strtotime($date)));
        $endDate = date("Y-m-d", strtotime("+".self::$daysNeededBeforeNextGig." days", strtotime($date)));

        foreach($scanners as $scanner){
            $events = EventProduct::get("EventProduct", "\"ExpiryDate\">='$startDate' AND \"ExpiryDate\"<='$endDate'");
            if($events){
                foreach($events as $event){
                    if($scanner->isAssignedToEvent($event)){
                        $scanners->remove($scanner);
                    }
                }
            }
        }

        return $scanners;
    }

【问题讨论】:

  • 这个函数怎么写php单元测试?
  • 编写测试以根据输入值检查函数的输出。对输入值使用边缘情况。可以在Chapter 4. Writing Tests for PHPUnit 上的 PHPUnit 文档中找到如何编写单元测试的一般描述 - 这有点像您要找的吗?

标签: php phpunit silverstripe


【解决方案1】:

文档中有几个关于使用 SilverStripe 编写测试的好页面

http://doc.silverstripe.org/sapphire/en/topics/testing/

想要开始使用一堆 EventProduct 产品制作一个夹具文件(文档中有一个示例)。

您还可以通过查看内置测试找到很多好的测试示例。我选择了 BlogHolder 测试,因为这与您正在寻找的东西非常相似(使用过滤器测试客户“getter”)

https://github.com/silverstripe/silverstripe-blog/blob/master/tests/BlogHolderTest.php(夹具文件是同一文件夹中的 BlogTree.yml)

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 2023-03-31
    • 2015-02-09
    • 2015-11-17
    • 2020-09-03
    • 2017-10-26
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多