问题标签 [phpunit]
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.
unit-testing - 使用 symfony + 教义 + PHPUnit 进行单元测试
我正在使用 Symfony + Doctrine + PHPUnit 和 NetBeans IDE。这是我目前的单元测试方法。
- setUp() 函数从 .yml 文件加载测试夹具
- tearDown() 函数从模型中删除所有数据。这是通过将我所有模型名称的数组循环到类似 Doctrine_Query::delete($modelName)->execute() 来完成的
这似乎可行,但我只是好奇这是否是正确的方法。我基本上是在每个测试函数之后通过指定模型/表来“全部删除”来清除所有表。
Q1:我只是想知道这是否是正确的方法... Q2:这在 Netbeans IDE 中运行良好,但似乎无法通过“./symfony test:unit”运行。我错过了什么还是 CLI 只适用于石灰?
php - 模拟新创建的实例?
我有没有使用 TDD 的旧代码现在我想为一个看起来像这样的函数编写一个测试
因为我对 phpunit 和测试没有太多经验,所以我的问题是:我如何模拟 DB_PG?我在测试中尝试了 getMock(),但由于该函数使用“new”来获取实例,所以我的模拟对象被忽略了,这是有道理的
所以我只看到 2 个选项
- 我不知道 phpunit 的一些特性 - 这就是我在这里问的原因 ^^
- 我必须修改旧代码 - 我知道这会更好
那么,有人知道选项1的答案吗?
谢谢大家
php - 让 PHPUnit 忽略东西?
我有一个 PHPUnit 测试类,我想在测试运行中忽略它。我知道我可以通过重命名它以使其文件名中不包含单词 Test 来做到这一点,但我宁愿不这样做,因为它比我想要的更混淆了源代码控制水域。
有人有建议吗?
php - 如何运行我所有的 PHPUnit 测试?
我有一个名为 Script.php 的脚本并在 Tests/Script.php 中对其进行测试,但是当我运行 phpunit Tests 时,它不会在我的测试文件中执行任何测试。如何使用 phpunit 运行所有测试?
PHPUnit 3.3.17,PHP 5.2.6-3ubuntu4.2,最新的 Ubuntu
输出:
这是我的脚本和测试文件:
脚本.php
测试/Script.php
selenium - 如果 Selenium 服务器未运行,如何跳过 PHPUnit 中的测试?
我想添加一套 Selenium 测试作为应用程序的全局 PHPUnit 测试套件的一部分。我已将 Selenium 测试套件连接到全局AllTests.php
文件中,并且在 Selenium 服务器运行时一切都运行良好。
但是,如果 Selenium 服务器没有运行,我希望脚本跳过 Selnium 测试,这样其他开发人员就不必为了运行测试而强制安装 Selenium 服务器。我通常会尝试在setUp
每个测试用例的方法中进行连接,如果失败,则将测试标记为已跳过,但这似乎会抛出带有消息的 RuntimeException:
The response from the Selenium RC server is invalid: ERROR Server Exception: sessionId should not be null; has this session been started yet?
有没有人有一种方法可以在这种情况下将 Selenium 测试标记为已跳过?
php - 使用 PHPunit 删除构造函数中的依赖项
在尝试测试遗留代码库时,我遇到了一个执行以下操作的对象:
此实例中的 Bar 有一个构造函数,它执行一些坏事,例如连接到数据库。我正试图集中精力测试这个 Foo 类,所以把它改成这样:
并尝试通过以下 PHPUnit 测试对其进行测试:
但是这不起作用 - Foo() 的构造函数在我的 ->expects() 被添加之前被调用,所以模拟的 getBarInstance() 方法返回一个空值。
有没有什么方法可以解除这种依赖关系,而不必重构类使用构造函数的方式?
php - 无法通过 pear 安装 PHPUnit
可能重复:
通过 PEAR 安装 PHPUnit
phpunit 的安装说明正在运行:
第一个没问题,第二个我收到错误:
我刚刚使用来自 php.net(php 5.3.0)的最新 go-pear.phar 版本安装了 pear,也尝试php go-pear.php
按照 pear 网站所说的那样运行。
runningpear -V
给了我 1.7.2 版本,当我运行pear upgrade PEAR
它说我的版本比当前 noe 1.9.0 新,如果运行pear upgrade -f PEAR
强制升级,它会下载文件并成功安装,但我仍然有版本 1.7.2 和无法安装 phpunit。
我正在运行 windows vista,php 5.3.0
zend-framework - 如何在 Zend PHPUnit Controller 测试中使用子域发送 url?
我想测试在子域 www.username.domain.com 上工作的控制器
问题是当我在 ControllerTestCase 调度它抛出 Zend_Controller_Dispatcher_Exception
路线.php:
用户控制器测试:
抽象控制器测试用例:
结果:
当我发送像 /login 这样的普通 URI 时,它运行良好,但问题是发送带有主机名的 URL。
有任何想法吗?谢谢你们。
php - PHPUnit:验证数组是否具有给定值的键
给定以下课程:
这个测试用例:
如何验证$params
(这是一个数组)并传递给$Other->post()
包含一个名为“key1”的键,其值为“值 1”?
我不想验证所有的数组——这只是一个示例代码,在实际代码中,传递的数组有更多的值,我只想验证其中的一个键/值对。
我$this->arrayHasKey('keyname')
可以使用它来验证密钥是否存在。
还有$this->contains('Value 1')
, 可以用来验证数组是否有这个值。
我什至可以将这两者与$this->logicalAnd
. 但这当然不会产生预期的结果。
到目前为止,我一直在使用 returnCallback,捕获整个 $params,然后对其进行断言,但也许还有另一种方法可以做我想做的事?
phpunit - PHPUnit 数据库扩展 - 如何有一个空的数据集?
我想创建一个空的测试表。使用 digitalsandwich 中的示例,我想要类似的东西:
我应该使用与 createFlatXMLDataSet() 不同的方法吗?或者???