标签: phpunit

测试 Laravel 中是否调度作业的更好方法

在 Laravel 中进行基于 phpUnit 的单元测试时,我发现了两种测试作业是否被调度的方法 -

1. $this->expectsJobs(JobClassName::class);

2.

Bus::fake();
Bus::assertDispatched(JobClassName::class);
Run Code Online (Sandbox Code Playgroud)

在仔细检查 Laravel 文档后,我无法弄清楚上述哪一种方法是更好的方法以及这两种方法之间的功能差异是什么。

testing phpunit laravel laravel-jobs laravel-9

2
推荐指数
1
解决办法
4914
查看次数

为什么PHPUnit坚持以OO方式做事?

存在被焚烧的风险......在上下文隐含的上下文中,强制执行对方法而不是函数的调用有什么优势.

考虑到PHP的语法对于调用方法来说是如此丑陋,为什么PHPUnit的创建者会强制使用它?

如果框架设置了一个全局"currentTestCase"对象,然后透明地将失败的断言与该对象相关联,那么我们可以编写:

assertEquals("blah", $text);
Run Code Online (Sandbox Code Playgroud)

而不是等同的,但冗长的:

$this->assertEquals("blah", $text);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们通过使用OO到底得到了什么.

请赐教.

php oop phpunit

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

在OSX Leopard上正确安装PHPUnit和Pear

我使用本指南安装了梨子http://t-machine.org/index.php/2008/12/28/how-to-install-pear-on-os-x-105/

/etc/php.ini中我的include_path =".:/ usr/local/PEAR"

PHPUnit 使用sudo pear install phpunit/PHPUnit安装在/ usr/local/PEAR / PHPUnit下(否则我会收到错误)

然而,当我尝试执行phpunit时,我收到此错误

Warning: require_once(PHPUnit/Util/Filter.php): failed to open stream: Not a directory in /usr/local/bin/phpunit on line 44

Fatal error: require_once(): Failed opening required 'PHPUnit/Util/Filter.php' (include_path='.:') in /usr/local/bin/phpunit on line 44
Run Code Online (Sandbox Code Playgroud)

我只是想知道有没有人知道问题是什么或安装梨osx的完整(和正确的指南).

谢谢!

php macos pear phpunit

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

已安装PHPUnit但未找到类PHPUnit_TestCase

谈论在第一个障碍下跌.我的测试脚本:

<?php

require_once('PHPUnit/Framework.php');

class TransferResponseTest extends PHPUnit_TestCase {

    ...

}
Run Code Online (Sandbox Code Playgroud)

运行我的测试用例:

$ phpunit TransferResponseTest

Fatal error: Class 'PHPUnit_TestCase' not found in 
/Volumes/Data/greg/code/syndicate/tests/TransferResponseTest.php on line 5
$ php -i | grep include_path
include_path => .:/usr/lib/php => .:/usr/lib/php
$ ls -l /usr/lib/php/PHPUnit/
total 8
drwxr-xr-x  16 root  wheel   544 27 Mar 19:03 Extensions
drwxr-xr-x  28 root  wheel   952 27 Mar 19:03 Framework
-rw-r--r--   1 root  wheel  3193 27 Mar 19:03 Framework.php
drwxr-xr-x   8 root  wheel   272 27 Mar 19:03 Runner
drwxr-xr-x   5 …
Run Code Online (Sandbox Code Playgroud)

php macos phpunit unit-testing osx-snow-leopard

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

selenium v​​s phpunit/lime?

我已经看到了Selenium的强大功能,它可以为您提供不同语言的测试.

所以问题是,当Selenium这样的解决方案可用时,我为什么要使用PHPUnitLime(用于Symfony)?

当你可以使用Selenium时,手动编写所有测试是不是很费时间?

selenium phpunit

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

如何包装PHPUnit来控制命令行报告?

所以我有很多PHPUnit测试(它们实际上是作为PHPUnit测试运行的Selenium测试).当我从命令行运行它们时,我会在测试完成时得到这种报告:

..E..F..E.FF...
Run Code Online (Sandbox Code Playgroud)

然后我必须等到所有测试完成后再告诉我错误和失败.我希望能够控制这一点,以便我可以做一些更有用的报告.例如:

testLogin ....... passed
testFoobar ...... failed
    - Failed asserting that foo = true on line 123
testBazbat ...... passed
Run Code Online (Sandbox Code Playgroud)

如何控制PHPUnit如何显示结果?

php phpunit

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

如何通过ssh连接运行PHPUnit Selenium测试?

我正在使用yii框架并尝试在CentOS服务器上通过ssh连接时运行其单元测试.当我运行phpunit时,它会尝试启动Firefox,但失败并显示错误"no display specifiedi"

linux ssh selenium phpunit yii

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

PHPUnit性能/测试超时

我正在构建一个测试脚本,它正在检查一组命令的性能.在测试失败之前,测试脚本需要让它运行一段特定的时间.

我在PHPUnit文档网站上找到了PerformanceTestCase,但是当我尝试使用它时,我发现它的旧功能尚未包含在新版本中.(该文档是PHPUnit 3.0,我的版本是3.5).

PHPUnit 3.5中是否存在此功能的等效物,我该如何使用它?

phpunit

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

为什么我收到此错误?致命错误:找不到类'TestCase'

即使我已经包含了TestCase类?

    <?php

require_once("PHPUnit/Autoload.php");
require_once("PHPUnit/Framework/TestCase.php");
require_once("PHPUnit/Framework/TestSuite.php");

class WidgetSession {
    public function __construct($one, $two){}
    public function login() {}
    public function isLoggedIn() {return null;}
    public function getUser(){
        return new WidgetUser();
    }
}

class WidgetUser{
    public $first_name = "";
    public $last_name = "";
    public $email = "";

    public function isSalesPerson() {return null;}
    public function isSalesManager() {return null;}
}

class TestWidgetSession extends TestCase {

    private $_session;
    function setUp(){
        $dsn = array(
            'phptype' => "pgsql",
            'hostspec' => "localhost",
            'database' => "widgetworld",
            'username' => "wuser",
            'password' => …
Run Code Online (Sandbox Code Playgroud)

php phpunit wamp

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

Phpunit - 模拟SoapFault-> getMessage()

我正在使用SOAP 连接到第三方服务.此服务有时会返回SoapFaults.因为这是预期的,我想通过模拟SoapFaults来测试它.它将返回五种标准的SoapFaults.

这是一个真正的SoapFault的开始:

object(SoapFault)#7 (11) {
  ["message":protected]=>
  string(19) "{ 'INVALID_INPUT' }"
Run Code Online (Sandbox Code Playgroud)

我对此消息感兴趣.在我的代码中,我使用$ e-> getMessage().

catch (SoapFault $e)
{
    // Catch any Soap faults and convert to an error message
    switch ($e->getMessage())
    {
        case "{ 'INVALID_INPUT' }":
            $this->addError(self::INVALID_INPUT);
            return FALSE;
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何模拟SoapClient响应.SoapClient对象似乎没有接受任何输入来设置消息,并且该方法getMessage()是最终的,所以我无法模拟它.

任何想法,将不胜感激.谢谢.

php phpunit soap

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