php测试插入,php – 使用Symfony测试数据库插入

今天是个好日子,

在过去的几天里,我一直在研究测试驱动开发,并决定我也需要学习它.虽然我无法弄清楚如何准确地做到这一点.

我的项目依赖于Symfony2.1.6框架和Doctrine,所以我有一些需要填充的数据库表.

Book (1,n) – (0,n) Genre

现在,如果我想插入一个类型记录,我首先需要编写一个测试来确保所有内容都被插入(或者我错了吗?)

现在的问题是我不知道如何访问我的数据库,因为它是由框架管理的.

我唯一能找到的是LiipFunctionalTestBundle

https://github.com/liip/LiipFunctionalTestBundle每次运行测试时都会创建并恢复临时数据库.我按照说明设置了所有内容.

编辑:我的app / config / config_test.yml现在看起来像这样:

imports:

- { resource: config_dev.yml }

framework:

test: ~

session:

storage_id: session.storage.filesystem

liip_functional_test: ~

web_profiler:

toolbar: false

intercept_redirects: false

swiftmailer:

disable_delivery: true

liip_functional_test:

cache_sqlite_db: true

doctrine:

dbal:

default_connection: default

connections:

default:

driver: pdo_sqlite

path: %kernel.cache_dir%/test.db

所以现在我有一个GenreTest类:

Liip没有文档,所以我尝试了这样的方法.

use Liip\FunctionalTestBundle\Test\WebTestCase;

class GenreTest extends WebTestCase {

public function testInsert() {

$container = $this->getContainer();

$registry = $container->get('doctrine');

$em = $registry->getEntityManager(null);

$genre = new Genre();

$genre->setName("testGenre");

$em->persist($genre);

$em->flush();

$result = $em->createQuery("SELECT g FROM QkprodMangressBundle:Genre g ".

"WHERE g.name = :name")

->setParameter("name", $genre->getName())

->getResult();

$this->assertEqual($result[0]->getName(), $genre->getName());

}

}

phpunit -c web /

PDOException: could not find driver

/…/Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:36

/…/Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php

:60

/…/Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:350

/…/Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:949

/…/Mangress/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:306

/…/Mangress/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:355

/…/Mangress/app/cache/test/jms_diextra/doctrine/EntityManager_510128d0a5878.ph

p:362

/…/Mangress/src/Qkprod/MangressBundle/Tests/Entity/GenreTest.php:27

FAILURES! Tests: 3, Assertions: 1, Errors: 1.

我遇到的一个大问题是……如何测试类似的东西?

或者我甚至测试数据库通信?伪造数据库

通过自定义实现的通信似乎不是一个

对我来说是个好主意,因为它会在制作中使用ORM和Doctrine

环境也是如此.

对不起..原来是这里的小说.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值