问题标签 [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.

0 投票
2 回答
3762 浏览

php - 实用程序类上的phpunit警告

我在集成服务器上使用 phpUnit 来运行所有测试,如果我从命令行启动 phpunit 命令,我会收到:

通过 apache,运行相同的测试文件:

我的 TU 类只包含所有带有 a 的测试类$suite->addTestFile(),它们有两个静态函数:main()运行所有测试,以及suite()返回测试套件。但是 TU 类不在作为 phpunit 命令参数的主文件中,它是一个通用类,它扫描文件并列出所有测试类。

我对将 PHPUnit_Framework_TestCase 扩展为 add 的类有同样的问题,该类specific assert()不包含在 via 中,$suite->addTestFile()而仅包含在 arequire()中。

我该如何纠正?

0 投票
9 回答
14342 浏览

php - 如何将 phpunit 与 Hudson CI 集成?

我们正在考虑从 phpundercontrol 切换到 Hudson(它看起来有一些非常酷的功能!)但我不知道如何让 phpunit 日志显示出来。

我的 phpunit 在 Hudson 中使用 ant 运行良好,并且 --log-xml 将 phpunit.xml 放入该构建的相应 builds/ 文件夹中。但是我不知道如何让它显示在构建中,以便我们可以看到运行的测试以及失败的测试(如果有的话)。

在我弄清楚之后,接下来将是获得覆盖率、指标和 api :)

对于在 HTML 上生成它的任何东西来说,它似乎应该是微不足道的,例如告诉哈德森“对于这个项目,为每个构建显示一个到 'API' 的链接并链接到 builds/$BUILDNUM/api/index.html”。

0 投票
4 回答
7084 浏览

php - 在 PHPUnit 中测试具有依赖关系的对象

对于组成另一个对象作为其实现的一部分的对象,编写单元测试以便只测试主要对象的最佳方法是什么?简单的例子:

我知道可以设计该对象,以便可以注入记录器对象依赖项并因此在单元测试中进行模拟,但情况并非总是如此 - 在更复杂的场景中,您确实需要组合其他对象或调用静态方法.

由于我们不想测试记录器对象,只测试 myObj,我们如何进行?我们是否使用测试脚本创建了一个存根的“双重”?就像是:

这对于小对象来说似乎是可行的,但对于 SUT 依赖于返回值的更复杂的 API 来说会很痛苦。另外,如果你想测试对依赖对象的调用,你可以使用模拟对象吗?有没有办法模拟由 SUT 实例化而不是传入的对象?

我已经阅读了关于模拟的手册页,但它似乎没有涵盖依赖组合而不是聚合的这种情况。你怎么做呢?

0 投票
1 回答
299 浏览

php - 在 Zend Framework 0.7 版中使用 PHPUnit

我们有一个使用 Zend Framework 预览版 0.7 开发的应用程序。现在我想编写单元测试它的控制器/逻辑文件。

逻辑主要处理数据库,对于数据库,我使用自己的包装器。

有人尝试在 Zend Framework 0.7 版之上对应用程序进行单元测试吗?

0 投票
5 回答
8803 浏览

php - 如何在 Mac OS X 10.5 上不使用 PEAR 安装 PHPUnit?

我在安装 PEAR 时遇到问题,但我真的只想安装 PHPUnit。有没有人有这样做的经验?

0 投票
3 回答
1157 浏览

php - 静态方法中使用的模拟方法

我试图阻止发送电子邮件的方法实际发送电子邮件,并且我认为模拟对象(或某些变体)是可行的方法。情况如下:

PHPUnit 中是否有我可以模拟 _sendMail() 并注入我自己的代码,以便我可以正确测试 resetPassword() 中的其他逻辑?

我的测试看起来像:

谢谢你的帮助。

0 投票
3 回答
3001 浏览

php - Zend Framework: Getting started with Zend_Test

Has anyone had any success setting up Zend_Test? What was your method/approach and how do you run your tests/test suites?

I already have PHPUnit installed and working. Now I'm trying to write some simple controller tests. The Zend Framework documentation assumes that autoloading is setup, which I haven't done. What method do you use to autoload the appropriate files? I do so in my normal bootstrap file, but I don't want to clutter up my Test with a bunch of includes and setting up paths. Would an abstract controller test case class be the way to go?

What about the bootstrap plugin like the documentation uses...is that how you bootstrap your tests, or do you like to do it a different way? I would like to re-use as much of the regular bootstrap file as I can. How should I DRY up my bootstrap for testing and normal use?

Here's my test so far:

What should I do?

0 投票
5 回答
2012 浏览

php - 您如何使用使用 ORM 的应用程序进行单元测试?

我浏览了有关单元测试的各种问题,但找不到专门回答这个问题的问题。

我有几个 PHP 类,其中包含如下所示的函数:

我使用 Propel 作为我的 ORM。我已经阅读了各种单元测试主题,这些主题讨论了创建“模拟”和“存根”等等,但我找不到任何具体告诉你如何测试上述函数的内容。

我的想法是这样的:我需要测试上面的函数,所以我想调用它。但如果我调用它,它使用 Propel 作为 ORM,根据单元测试原则,我应该单独隔离每个函数。

我只是没有办法做到这一点。我在这里想念什么?

0 投票
3 回答
1559 浏览

php - 如果代码抛出通知,我可以让 PHPUnit 失败吗?

默认情况下它似乎没有这样做,我也没有看到任何开关。

这是 PHPUnit 2.3.5 和 PHP 5.2.0-8。

0 投票
3 回答
508 浏览

performance - 标记单元测试

我正在开发一个具有可靠单元测试覆盖率的 PHP 项目。

我注意到,上次,我使用 unit-tests Command-Line Test Runner' --filter命令进行了非常棘手的操作。

以下是官方文档中对该命令的解释:

- 筛选

仅运行名称与给定模式匹配的测试。模式可以是单个测试的名称,也可以是匹配多个测试名称的正则表达式。

我经常使用它,因为有时只运行整个测试库中的单个测试套件或测试用例会变得非常有用。

我想知道这是否是好习惯?

我听说有时在您的持续集成机器上运行整个测试套件是一种很好的做法,如果您确定自己只修改了一个组件并且100% 有信心,它不会使其他组件的单元失败-测试。你怎么看待这件事?

前段时间我认为我们不应该太关心运行所有单元测试的整个套件所需的时间,但是当您有非常复杂的业务逻辑和单元测试时 - 这可能会花费大量时间。

我明白,“真正的”单元测试不应该与数据库交互,使用模拟/存根对象,我同意这一点。但有时,使用 DB 固定装置进行测试更容易(更便宜)。

请给我一些建议,如何解决这个问题?