我将如何对以下简单示例的接口进行单元测试:
interface My_App_My_Interface
{
/**
* @return int
*/
public function getInteger();
/**
* @return string
*/
public function getString();
}
这也将如何在我的应用程序测试目录中进行组织:
tests > My > App > My > InterfaceTest
??
答案 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);
}
}
由于接口只提供抽象方法,因此它们无法实现,因此无法编写测试。