问题标签 [zend-test]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Zend Framework 2 - 单元测试
我想创建一个简单的访问单元测试,如教程中所示。
我的项目ZFCUser
用于身份验证。
结果,我的(显然未经过身份验证的)测试人员得到HTTP response
302 而不是预期的 200。
有什么想法我能做些什么吗?谢谢!
本教程中的代码如下所示:
php - 当我的数据库权限受到限制时,如何测试我的 Zend Framework 模型?
我正在开发一个 PHP(Zend Framework 1.12.1)应用程序,该应用程序以某种独特的方式连接到数据库。
基本上,我们有一个对我来说是一个“黑匣子”的 Oracle 数据库。我没有权限直接选择、更新、插入或删除任何行或表。我只能访问数据库视图(仅限选择),当我想插入/更新/删除数据时,我必须调用一个或多个存储过程。我不知道实际的表结构是什么,而且我认为任何时候都不会有人给我访问权限。
所有这一切都使得对我的模型进行单元测试非常困难(更不用说编写它们了),因为 ZF 似乎假设您的应用程序在数据库中拥有完全权限。(这就是为什么我到目前为止只对我的模型进行了手动测试,而且我的模型有些不寻常。)
我的应用程序有效,但我厌倦了手动测试。
以前有没有其他人遇到过这种情况?您能否推荐在数据库权限有限的环境中实现自动化 PHPUnit 测试的具体步骤?我已经要求 db 管理员给我一个resetTestData()
名为/ 或拆除。显然,在每次测试之前Zend_Test_PHPUnit_DatabaseTestCase
尝试truncate
数据集,然后调用getDataSet()
以获取数据并重新填充数据库。解决问题?
php - PHP ZF2单元测试调度方法非常慢
我需要测试一个用 ZF2 编写的大型网站。有 443 个测试和大约 10000 个断言。代码覆盖率测试需要 6 个小时!我想我发现了问题:在控制器的测试中,我使用了 AbstractHttpControllerTestCase 的调度方法。每次测试后,调度方法的执行时间都会增加(从几分之一秒到几十秒)。
我使用 ZF 2.1.3、PHPUnit 3.7、PHP_CodeCoverage 1.2、Xdebug v2.2.1、PHP 5.4.7。
我的调度方法:
parent::dispatch 是来自 AbstractHttpControllerTestCase 的方法。
测试样本:
请帮忙。谢谢。
更新:
我使用进程隔离并在大约 15 分钟内完成测试(没有代码覆盖),但在测试中出现错误,标记为已跳过:
phpunit - PHPUnit 模拟对象替换真实类
我的测试套件中有几个测试在 Zend_Test 中运行
一个测试Foo_Bar_Baz
通过 PHPUnit 的 MockBuilder 创建一个模拟作为该类的依赖项。现在在测试中Foo_BAR_baz
(改变大小写是故意的,并且由于自动加载是必要的),我没有得到类,而是模拟的一个实例,这显然不起作用。
var_dump
对对象执行 a会导致class Foo_Bar_Baz#27115(0) { }
它似乎是在创建模拟实例。
修复模拟中的情况可以让事情按预期工作。我以前从未在模拟对象中看到过这种行为。由于某种原因,模拟类被加载到 PHP 中,因此当下一个测试尝试实例化真实对象时,它会实例化模拟类。为什么会发生这种情况?
phpunit - 找不到类 PHPUnit\Framework\ExpectationFailedException
当我尝试使用此命令运行失败的测试时:
./vendor/bin/phpunit
我收到此致命错误:
php - 对象模拟 - 如何在服务管理器中用服务替换工厂?
我在让我的单元测试工作时遇到了一些麻烦。我正在测试一个使用工厂创建的服务的控制器。我想要实现的是用模拟服务替换工厂,这样我就可以在不使用活动数据库连接的情况下执行测试。
设置
在我的服务管理器的配置文件中,我指向一个工厂。工厂需要一个我不想在单元测试期间使用的活动数据库连接。
注意:出于说明目的,我更改了类名和简化配置。
该服务使用我现在不会进入的映射器,因为这与情况无关。映射器在他们自己的测试用例中进行测试。服务本身也有自己的测试用例,但需要存在才能让控制器的操作起作用。
控制器操作只是从服务接收信息。
注意:同样,为了便于说明,我更改了类名并简化了示例。
我试过的
在我的测试用例中,我尝试像这样覆盖所需的工厂:
乍一看,这看起来很棒,但它不起作用。它似乎只是将服务附加到服务管理器的服务列表中,而不是覆盖工厂。
更改$services->setService
为$services->setFactory
需要我建立另一个工厂。我能做的是创建一个工厂,将模拟映射器注入到服务中,但感觉不对。我正在测试控制器,而不是服务或映射器,所以我试图避免这样的复杂解决方案,以保持我的测试用例简单明了。
关于我的情况有什么选择吗?是否可以在服务管理器中使用服务覆盖工厂,还是我看错了?
php - 使用类常量时忽略 PHPUnit 测试
我正在使用 PHPUnit6.2.2
和 zendframework/zend-test3.1.0
为 Zend Framework 3 应用程序编写集成测试,并观察以下行为:
当我在测试类中定义一个常量时,例如
并在配置文件中使用它,例如
测试类被完全忽略。(用 . 检查assertTrue(false)
。)当我用FooTest::MY_CONST
一个值替换配置文件时,一切都会再次运行。
看起来像一个错误,但我无法找出它是 PHPUnit 中的错误还是Zend\Test
. 以前有人观察过这种行为吗?想法,它可能是由什么引起的(为 PHPUnit 或创建错误票证Zend\Test
)?
phpunit.xml
test/Bootstrap.php
zend-framework3 - 如何在 ZFC RBAC 下使用 PHPUnit 测试 Controller
我对单元测试还很陌生,并且刚刚开始学习如何使用测试使我的应用程序更可靠的旅程。
我正在使用 Zend Framework 3 并遵循本指南https://docs.zendframework.com/tutorials/unit-testing/
我想要做的是测试一条需要用户经过身份验证并具有正确 ZFR Rbac 角色的路由。
在我运行测试的那一刻,我收到以下错误:
所以我的问题是如何在测试中设置 RBAC?
zend-framework2 - 单元测试时类型错误异常(zend-test,PHPUnit)
我正在尝试在 Zend FrameWork 中测试一个简单的控制器操作,但我不能 100% 确定为什么我的模拟不起作用。
原动作:
我对此操作的测试
错误信息
为了完整性,Rbac 类
预后
似乎没有调用模拟...