0

在 Project\tests\acceptance\TestCept.php 里面我有类似的东西:

<?php
$I = new WebPerson($scenario);

$today = date("Y-m-d H:i:s");
echo $today;

$I->wantTo('Test');

$I->seeInDatabase('email',['Emailid' => '1'], ['EmailSubject' => 'Test'], ['SendDate' => $today]);

我跑:

codecept run acceptance --steps

我得到:

* I see in database "Email",{"Emailid":"1"},{"EmailSubject":"Test"},{"SendDate":"2014-04-01 22:28:11"}
PASSED

当我运行以下查询时:

SELECT * FROM email WHERE emailid= '1' AND EmailSubject='Test' AND SendDate = "2014-04-01 22:28:11";

我得到零结果。

我在看什么?当此查询不存在任何记录时,为什么 CodeCeption 返回 PASS?

谢谢

4

1 回答 1

1

seeInDatabese() 方法应该只得到两个参数!您将 WHERE 条件作为三个单独的数组传递,因此只有第一个将传递给 SELECT 查询。

你应该写:

$I->seeInDatabase('email',['Emailid' => '1', 'EmailSubject' => 'Test', 'SendDate' => $today]);
于 2014-04-02T06:24:27.647 回答