测试驱动的开发和接口

时间:2012-12-08 14:35:47

标签: php unit-testing testing phpunit

我将如何对以下简单示例的接口进行单元测试:

interface My_App_My_Interface
{
    /**
     * @return int
     */
    public function getInteger();

    /**
     * @return string
     */
    public function getString();
}

这也将如何在我的应用程序测试目录中进行组织:

tests > My > App > My > InterfaceTest ??

2 个答案:

答案 0 :(得分:4)

你不测试接口。你测试实现。如果接口提供所有必需的功能,则应检查接口(人工)

答案 1 :(得分:0)

正如piotrek所说,你永远不会测试接口,因为它们只是一个契约,那里没有代码。

例如,使用atoum testing framework,您可以编写一个实现您的界面的类。

namespace mageekguy\atoum\tests;

class TestMyInterfaceImplementation extends atoum\test{
    public function test__construct(){
        $object = new MyObject();
        $this->object($object)->instanceof('MyInterface');
    }
    public function test_getInteger(){
       $object = new MyObject();
        $this->integer($object->getInteger);
    }
 }

由于接口只提供抽象方法,因此它们无法实现,因此无法编写测试。