-1

想知道如何开始在 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;
    }
4

1 回答 1

2

该文档有几个关于使用 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)

于 2011-08-28T11:13:14.147 回答