【发布时间】:2014-02-24 08:39:03
【问题描述】:
您好,我是 PHPUnit 和 Laravel 4 的新手。 我已经创建了一个 REST API,我正在尝试使用 laravel (PHPUnit) 单元测试将一个新用户添加到我的测试数据库中。问题是,它完全忽略了我试图在创建用户文档时添加的 Object 数组。
典型的用户文档如下所示:
{
_id": ObjectId("53021089b4d15220118b4568"),
"oArr": {
"something": {
"somewhere": "5th Avenue",
"ip": "192.168.0.20"
},
"something2": {
"somewhere": "6th Avenue",
"ip": "192.168.0.21"
}
}
"email": "jessica@example.com",
"name": "Jessica Alba",
"password": "$2y$10$RAVzUGLAG.81IOOUum0k0u5vrcY98H.L42FeSJekEywUCV.ycttn6"
}
现在 Laravel 拥有自己的测试类 TestCase,您的单元测试可以扩展它。
典型的例子如下:
class AddUserTest extends TestCase {
/**
* A basic functional test example.
*
* @return void
*/
public function testCreateUsers()
{
$post_data = array(
'email' => 'emma@example.com',
'name' => 'Emma Watson',
'password' => 'password',
'oArr' => array(
'something' => array(
'somewhere' => '7th Avenue',
'ip' : => '192.168.0.31'
),
),
);
}
}
用户测试运行(成功)后,新的 Emma Watson 用户(Mongo Doc)如下所示:
{
_id": ObjectId("53021089b4d15220118b4568"),
"email": "emma@example.com",
"name": "Emma Watson",
"password": "$2y$10$asdAzUGLAG.8asvWQOUum0k0u5vrcY98H.LEDeSJekEywUCV.ycttn6"
}
我不知道怎么做,也找不到其他人有同样的问题。
我的假设:我使用的 ORM (https://github.com/jenssegers/Laravel-MongoDB) 不适合单元测试中的对象数组。
我还没有研究 ORM 是如何处理单元测试的,我只是希望其他人也有同样的问题,并且有一个更基本的解决方案。
【问题讨论】:
标签: php mongodb unit-testing laravel