标签: simpletest

用PHP开始的单元测试

可能重复:
简单测试与PHPunit

我是软件开发方面的新手.我需要知道我应该使用女巫测试单元框架.我看到有些人使用PHPUnit而其他人使用SimpleTest.我应该为初学者选择什么样的套餐?

最好的祝福,

php phpunit unit-testing simpletest

8
推荐指数
3
解决办法
2706
查看次数

SimpleTest:如何断言抛出PHP错误?

如果我是正确的,SimpleTest将允许您断言抛出PHP错误.但是,根据文档,我无法弄清楚如何使用它.我想声明我传递给构造函数的对象是一个实例MyOtherObject

class Object {
    public function __construct(MyOtherObject $object) {
        //do something with $object
    }
}

//...and in my test I have...
public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
    $notAnObject = 'foobar';
    $object = new Object($notAnObject);
    $this->expectError($object);
}
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

php unit-testing simpletest

7
推荐指数
1
解决办法
4189
查看次数

如何使用PHP SimpleTest框架设置数据库测试

我正在使用SimpleTest,一个基于PHP的单元测试框架.我正在测试新代码,它将处理从数据库中存储和检索网站注释.我对如何构建项目来测试数据库访问代码感到茫然.

我正在寻找有关在PHP应用程序中测试db代码的最佳实践的任何建议.例子真的很棒.进一步阅读的网站很棒.

非常感谢你.:)

php database tdd unit-testing simpletest

6
推荐指数
1
解决办法
3620
查看次数

如何在单元测试中设置PHP + xDebug +(x)Unit + Eclipse以使用断点?

已经尝试了相当一段时间才能使其正常工作但没有运气.基本上,我有Eclipse(3.3)与PHP开发工具(PDT),PDT XDebug插件以及SimpleTest eclipse插件.

我想要做的是调试SimpleTest单元测试调用的代码.SimpleTest显然可以看到XDebug,因为我可以生成代码覆盖率报告,但它不会在断点上停止.

编辑:应该添加XDebug和断点在eclipse中正常工作,而不是在SimpleTest调用时

有没有人成功设置过这个?有很多guff文档,很少有用的信息.

谢谢!

php eclipse debugging simpletest xdebug

6
推荐指数
1
解决办法
1213
查看次数

Cakephp测试登录

我想测试登录功能,如果它正常工作,只允许有效和活跃的用户.

我的用户夹具包含:

array(
        'password' => '*emptyPasswordHash*', // empty password
        'username' => 'Lorem',
        'balance' => 0,
        'currency' => 'USD',
        'id' => 1,
        'user_group_id' => 3, //Customer
        'active' => 1,
        'hash' => 'LoremHash'
    ),
Run Code Online (Sandbox Code Playgroud)

我的测试函数如下所示:

function testLogin() {
            //test valid login
            $result = $this->testAction('/users/login', array(
                'data' => array(
                    'User' => array(
                        'username' => 'Lorem',
                        'pass' => '',
                        'remember' => true
                )),
                'method' => 'post',
                'return' => 'view'
            ));

            debug($result);
Run Code Online (Sandbox Code Playgroud)

}

登录表单具有3个输入:username,passwordremember

我已经设置$this->Auth->autoRedirect = false;UsersController::beforeFilter …

php simpletest login cakephp-1.3

6
推荐指数
1
解决办法
1195
查看次数

CakePHP和SimpleTest无法通过全新安装进行测试

我刚刚下载了Cake PHP 1.3,并将SimpleTest 1.0.1安装到vendor目录中.当我运行cake testsuite core时,我得到以下错误:

运行核心所有PHP致命错误: Cannot redeclare class Article in /Users/../cake/tests/cases/libs/model/models.php on line 283

如果我单独运行测试组或测试用例,其中许多都会失败.

这是一个干净的安装,除了基本配置设置(安全盐,cipherSeed和数据库配置)之外,我没有进行任何开发.

有没有其他人有问题,你做了什么来解决它?

我发现这个线程有完全相同的问题,但它没有解决,或者至少没有在该线程中发布解决方案.

simpletest cakephp fatal-error

6
推荐指数
1
解决办法
689
查看次数

我在哪里可以找到Simpletest的扩展HTML记者?

我正在使用Simpletest作为我目前正在处理的PHP站点的单元测试框架.我喜欢它附带一个简单的HTML记者,但我想要一个更先进的记者.

我已经阅读了记者的API文档,但是能够使用现有的记者,而不是自己做,这将是很好的.

对于Simpletest,有没有好的扩展HTML报告器或GUI?

关于PHPUnit的GUI的提示也将受到赞赏,但我的主要关注点是Simpletest,对于这个项目.我尝试过Cool PHPUnit Test Runner,但不相信.

php user-interface unit-testing simpletest

5
推荐指数
1
解决办法
335
查看次数

CakePHP控制器的实际测试?

我正在使用SimpleTest 1.0.1用CakePHP(刚刚发布的1.2.4)编写一个新的应用程序.我已经阅读了Cookbook的相关章节,在Bakery上搜索过,并阅读了Mark Story关于控制器测试的帖子(艰难的方式模拟).

不幸的是,这些都没有涉及非平凡控制器的实际测试.许多应用程序将网站的区域置于登录后面,但我无法弄清楚如何测试以下简单方案:

  • 访客访问受保护的页面重定向?
  • 有效凭证设置预期的会话变量?
  • 无效的凭据重新显示登录页面并显示错误消息?

下面的控制器和测试不能像我想象的那样工作.两个断言都失败了,我也得到一个PHP错误:

在[.../app/tests/cases/controllers/users_controller.test.php第79行]中,FAILED [NULL]不应该为空... .../app/tests/cases/controllers/users_controller.test.php - > UsersControllerTest - > testLogin

FAILED等于期望失败,因为[NULL]与[.../app/tests/cases/controllers/users_controller.test.php第80行]中的[Integer:1]不匹配.../app/tests/cases/controllers/users_controller.test.php - > UsersControllerTest - > testLogin

ERROR意外PHP错误[未定义索引:操作]严重性[E_NOTICE]在[.../cake/libs/controller/components/auth.php第266行] .../app/tests/cases/controllers/users_controller.test中. php - > UsersControllerTest - > testLogin

这是控制器(烘焙加Mark Story的"硬路"测试方法):

class UsersController extends AppController
{
  var $name = 'Users';
  var $helpers = array('Html', 'Form');
  var $components = array('Auth');

  function login()
  {
  }

  function logout()
  {
    $this->redirect($this->Auth->logout());
  }

  function index()
  {
    $this->set('users', $this->paginate());
  }

  function view($id = null) …
Run Code Online (Sandbox Code Playgroud)

php testing simpletest cakephp

5
推荐指数
1
解决办法
2797
查看次数

如何在simpletest unittest类中运行单个测试方法?

这是我的单元测试课程

<?
require_once '../simpletest/unit_tester.php';
require_once '../simpletest/reporter.php';
class Academic extends UnitTestCase
{
    function setUp()
    {
    }
    function tearDown()
    {                           
    }
    function testAc1()
    {          
    } 
    function testAc4()
    {         
    }     
    function testAc7()
    {        
    }

}

$test = new Academic();
$test->run(new HtmlReporter());
?>
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,运行所有方法,即testAc1,testAc4,testAc7等.有没有办法只执行一个方法?

谢谢,Shikhar

simpletest

5
推荐指数
1
解决办法
547
查看次数

使用DrupalUnitTestCase的单元测试Drupal在数据库设置时失败

使用DrupalUnitTestCase单元测试一个Drupal模块,失败.我可能会忘记一些事情

测试运行良好,直到我创建一个类的实例:

$foo = new FooBar();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Drupal决定做一些魔法并尝试调用数据库,以便在其注册表中找到一些文件.

 Test PDOStatement->execute() failed: <em class="placeholder">PDOException</em>: SQLSTATE[42S02]: Base table  [error]
or view not found: 1146 Table &#039;td_development.simpletest50921registry&#039; doesn&#039;t exist: SELECT
filename FROM {registry} WHERE name = :name AND type = :type; Array
(
    [:name] =&gt; FooBar
    [:type] =&gt; interface
)
Run Code Online (Sandbox Code Playgroud)

DrupalUnitTestCase,而不是DrupalWebTestCase设计数据库,而不是设计.所以这个失败的原因很明显.

但是,我不想让Drupal在数据库中查找我想要的是创建一些实例.如何避免Drupal在其注册表中查找文件?

unit-testing simpletest drupal

5
推荐指数
1
解决办法
1238
查看次数