0

我正在尝试将测试驱动开发应用于生成网页并且在使用我的数据库时遇到了问题。我正在使用 Cake 1.1、PHP5 和 SimpleTest 进行单元测试。

我的问题是我有一个测试:

  1. 使用直接 SQL 语句插入一行
  2. 测试是否插入了该行(通过使用我的主程序中的函数。)
  3. 删除插入的行。

第 1 步和第 3 步都可以正常工作,但第 2 步失败。

重要的是要意识到,如果我在不删除行的情况下运行测试(我将其注释掉)然后再次运行测试但首先消除第 1 步(再次简单地注释该行)并且测试通过而没有问题。

我还尝试在 PHPMyAdmin 中直接运行 SQL 语句(在编辑器中一个接一个),它们运行良好。

4

3 回答 3

3

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

否则,在第 1 步提交之前,第 2 步无法看到第 1 步的结果。

于 2009-11-01T22:20:21.740 回答
1

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

你能给出一些示例代码吗?

于 2009-11-01T22:29:38.210 回答
0

您确定要在步骤 1 中提交事务吗?

于 2009-11-01T22:39:22.917 回答