加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用phpunit在Laravel 4中测试命名空间对象

发布时间:2020-12-14 19:34:28 所属栏目:大数据 来源:网络整理
导读:我正在组织我的测试文件夹以反映我的应用程序中的命名空间对象和界面.但是,在使用命名空间练习TDD时,我一直在努力维护秩序.我完全不知道如何让所有这些作品发挥得淋漓尽致.任何有关此问题的帮助将不胜感激! 结构体: app/ Acme/ Repositories/ UserReposito
我正在组织我的测试文件夹以反映我的应用程序中的命名空间对象和界面.但是,在使用命名空间练习TDD时,我一直在努力维护秩序.我完全不知道如何让所有这些作品发挥得淋漓尽致.任何有关此问题的帮助将不胜感激!

结构体:

app/ 
  Acme/ 
    Repositories/ 
      UserRepository.php 
    User.php
  tests/ 
    Acme/ 
      Repositories/ 
        UserRepositoryTest.php 
      UserTest.php

应用程序/ Acme公司/ user.php的

<?php namespace Acme;

use Eloquent;

class User extends Eloquent {

    protected $guarded = array();

    public static $rules = array();
}

应用程序/测试/阿克米/ UserTest.php

<?php

use AcmeUser;

class UserTest extends TestCase {

    public function testCanBeLoaded()
    {
        $this->assertInstanceOf(User,new User);
    }
}

PHPUnit结果:

1) UserTest::testCanBeLoaded
ErrorException: Use of undefined constant User - assumed 'User'

解决方法

assertInstanceOf方法需要一个字符串,而不是一个对象.试试User :: class. :: class表示法是 introduced in PHP 5.5

<?php

use AcmeUser;

class UserTest extends TestCase
{
    public function testCanBeLoaded()
    {
        $this->assertInstanceOf(User::class,new User);
    }
}

2015年11月22日更新

使用当今PHP的最佳实践更新了我对更好解决方案的回答.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读