2

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

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

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

还有这将如何在我的应用程序测试目录中组织:

tests > My > App > My > InterfaceTest??

4

2 回答 2

4

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

于 2012-12-08T14:38:13.367 回答
0

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

例如,使用atoum 测试框架,您可以为实现您的接口的类编写代码。

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);
    }
 }

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

于 2012-12-08T14:50:32.670 回答