2009-11-01 56 views
0

我试图将测试驱动开发应用于生成网页,并且无法使用我的数据库。我正在开发使用Cake 1.1,PHP5和SimpleTest进行单元测试。我的数据库不会立即插入

我的问题是,我有一个测试:(在我的主程序使用功能)

  1. 使用直接的SQL语句
  2. 测试,如果该行被插入插入一行
  3. 删除插入的行。

步骤1和步骤3都正常工作,但步骤2失败。

重要的是要认识到,如果我在不删除行的情况下运行测试(我评论说),然后再次运行测试,但首先消除步骤1(再次简单地评论该行)并且测试通过没有问题。

我也尝试在PHPMyAdmin中直接运行SQL语句(在编辑器中一个接一个地执行),并且它们完美地工作。

+0

我们可以看到一些代码来判断它是否发生在一个或多个事务中? –

+0

我实际上添加了提交,但它仍然无效。谢谢你的想法。 –

回答

3

是否所有步骤都在同一个事务中执行?

如果不是,则步骤2无法看到步骤1的结果,直到步骤1提交。

+0

它们实际上是分离的SQL语句...我不认为它们是同一个事务,尽管它们在同一个PHP函数内。 –

1

听起来好像插入发生在您尝试测试时尚未提交的事务中。

你能给一些示例代码吗?

0

您确定您在步骤1中提交了交易吗?