Doctrine orm 如何测试自定义类型
如上所述,可以创建自定义Doctrine orm 如何测试自定义类型,doctrine-orm,doctrine,Doctrine Orm,Doctrine,如上所述,可以创建自定义类型s 我已经做了,但现在我想测试这个类,但不幸的是这是不可能的 实际上,自定义类型扩展了类Doctrine\DBAL\Types\type,该类似乎无法实例化 实际上,它的构造函数是这样构建的: /** * Prevents instantiation and forces use of the factory method. */ final private function __construct() { } 如注释中所述,需要使用工厂方法来实例化类,但是,这
类型
s
我已经做了,但现在我想测试这个类,但不幸的是这是不可能的
实际上,自定义类型扩展了类Doctrine\DBAL\Types\type
,该类似乎无法实例化
实际上,它的构造函数是这样构建的:
/**
* Prevents instantiation and forces use of the factory method.
*/
final private function __construct()
{
}
如注释中所述,需要使用工厂方法来实例化类,但是,这个工厂方法是什么?我在哪里可以找到它?通过模拟和github上的一个问题的组合,我能够对一个条令类型进行单元测试。我想这适用于与平台无关的简单类型。对于更复杂的类型行为,可以使用不同的模拟来替换平台
/**
* @test
*/
public function willCastValueToInt()
{
$typeBuilder = $this
->getMockBuilder(IntegerType::class)
->disableOriginalConstructor()
->setMethods(null);
$type = $typeBuilder->getMock();
$platform = $this->getMockForAbstractClass(AbstractPlatform::class);
$result = $type->convertToPHPValue('3', $platform);
$this->assertSame(3, $result);
}
您可以看一看DBAL测试套件,例如这个测试Mmm。。。似乎
Doctrine\Tests\DBAL\Mocks\MockPlatform代码>是没有根据的!-.-'他们提到了这一点,但我不知道他们是怎么打破的。