【PHPUnit札记(一)】教程文章相关的互联网学习教程文章

PHPUnit-我可以针对较低版本的PHP运行测试吗?【代码】

如here所述,我可以对PHP版本是否至少为5.3.0进行测试. 但是,如果我要为低于5.3.0的PHP版本运行测试? 我这样写:<file phpVersion="5.3.0" phpVersionOperator="<=">./tests/unit/test-file.php</file>但是我收到这个错误Unescaped '<' not allowed in attributes values我该怎么办?解决方法:根据version_compare函数的文档:The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq,!=, <>, ne respectively.这在p...

如何使用phpunit测试位于symfony中Web文件夹中的静态文件?【代码】

sysinfo: > PHPUnit 5.7.4> PHP 7.0.13> Symfony 3.2.1 我正在尝试点击“下载”页面上的链接,并验证文件是否可下载,但是当我点击链接$client-> click($crawlerDownload-> link());我得到一个404.symfony $client是否不可能访问web目录中的静态文件?我该如何测试? Favicon测试是测试用例的简化版本.public function testPressDownload() {$client = static::createClient();$client->followRedirects(false);//create fixture fi...

在PHPUnit中测试可迭代项【代码】

在PHPUnit中,很容易断言两个数组包含相同的值:$this->assertEquals( [1, 2, 3], [1, 2, 3] );PHP的最新版本使Iterators和Generators的使用更具吸引力,PHP 7.1引入了the iterable pseudo-type.这意味着我可以编写函数以接受和返回Iterable,而不必绑定到我正在使用普通旧数组或使用惰性Generator的事实. 我如何断言返回可迭代函数的返回值?理想情况下,我可以做类似的事情$this->assertIterablesEqual( ['expected', 'values'], $it...

用phpunit测试命令symfony【代码】

我使用symfony3.2创建一些基本命令来定期生成一些新闻通讯当我想用phpunit 5.5.4测试我的symfony命令时,我正在处理一些问题.它从一开始就失败了:/*** @param InputInterface $input* @param OutputInterface $output*/protected function execute(InputInterface $input, OutputInterface $output){$output->writeln("<info>Script start</info>");//...$output->writeln("<info>done</info>");}使用此单元测试:use MyBundle\Com...

Laravel phpunit assertViewHas与预期的测试数据不匹配【代码】

我正在为我的搜索方法编写一个测试,但是当前有一个assertSee,并且想要将其更改为assertViewHas以获得更好的测试结果.但是我从搜索方法中获得的数据不希望与我期望的数据匹配. 这是我设置$user的位置:protected $user;public function setUp() {parent::setUp();$this->seed();$this->user = factory(User::class)->create(['role_id' => 3]); }这是我要声明的地方:$response = $this->followingRedirects()->actingAs($this->use...

如何修复NetBeans PHPUnit集成?【代码】

在带有PHPUnit 3.4.1的NetBeans 6.7.1上,如果尝试运行在NetBeans中设置的测试,则会出错并无法执行测试,以下是输出:PHPUnit 3.4.1 by Sebastian Bergmann.The --log-xml option is deprecated, please use --log-junit instead.Argument #1 of PHPUnit_Util_Fileloader:checkAndLoad() is no existing file如果我从命令行运行测试,则运行良好,只是不是从NetBeans内部运行. 如果您将错误的路径或文件传递给phpunit工具,则会遇到相同...

没有用phpUnit测试异常?【代码】

我正在用phpUnit编写一些单元测试来测试Zend Framework应用程序,并且在changePassword函数中测试异常时遇到了一些问题.测试不会失败,但是会在生成html的覆盖率工具中“抛出新的异常($tr-> translate(‘userOldPasswordIncorrect’));”线未测试.public function changePassword(array $data, $id) {$user = $this->_em->find('Entities\User', (int) $id);$oldPassword = sha1(self::$_salt . $data['oldPassword']);if ($user->ge...

PHPUnit和Selenium:未调用setUpBeforeClass()【代码】

我想使用setUpBeforeClass()来设置数据库连接,并进行一些日志记录,但是在我的测试执行之前(或者根本就没有)调用它.我有以下几点:class TestSetup extends PHPUnit_Extensions_SeleniumTestCase {public static function setUpBeforeClass() {//do some setup stuff here for all my tests}protected function setUp() {$this->setBrowserUrl('http://' . $this->deviceIp);}protected function testOne() {//do a test here}prote...

从PHPUnit代码覆盖范围中排除PHP接口【代码】

我有一个PHPUnit测试,该测试测试一个名为HelpTokenizerTest的类.此类实现TokenizerInterface.由于某些奇怪的原因,我无法将TokenizerInterface排除在代码范围之外. 尽管使用@codeCoverageIgnore甚至@ codeCoverageIgnoreStart / End,它仍会在代码覆盖率报告中显示为未覆盖. 有任何想法吗? 我不希望界面包含在我的测试报道中,因为它什么也没做.测试接口的目的是什么?解决方法:使用phpunit.xml时,可以设置过滤器以排除具有特定名称,...

在PHPUnit中设置白名单【代码】

在为php设置白名单时遇到以下问题: 我在phpunit xml中设置了以下过滤器:<filter><whitelist><directory suffix=".php">../..</directory><exclude><directory>../../cache</directory><directory>../../public_html</directory><directory>../../temp</directory><directory>../../tools</directory></exclude></whitelist> </filter>没有该白名单,一切正常,但是当我放它时,系统崩溃,因为它试图包含所有文件.这使得它包含一个具有...

如何在phpunit中运行目录结构测试?【代码】

PHPUnit文档说,我可以将所有测试放到一个文件夹中,然后在该文件夹上运行phpunit,一次执行所有测试: http://www.phpunit.de/manual/current/en/organizing-tests.html 但是,当我尝试使用Slim(https://github.com/codeguy/Slim)的分支副本时,它不起作用!我已经通过PEAR安装了PHPUnit,所以我认为这没有什么奇怪的. 这是输出:mark@ubuntu:/project/submodules/Slim$phpunit tests PHP Fatal error: Uncaught exception 'PHPUn...

如何使我的PHPUnit测试更简洁,更短?【代码】

我为Web应用程序编写的PHPUnit测试因其长度和不透明性而使我丧命.似乎测试中的代码比他们正在测试的代码多一个数量级. 例如,假设我的网站上有一个CatController对象,此方法是:public function addCat(Default_Model_Cat $cat) {$workflow = $this->catWorkflowFactory->create(array($this->serviceExecutor));$workflow->addCat($cat); }我必须创建以进行彻底测试的单元测试将是这样的:public function testAddCat() {$cat = $t...

使用自定义框架从目录运行PHPUnit测试【代码】

对于我们的项目,我在PHPUnit框架之上创建了一个框架,该框架可以帮助我们完成编写单元测试的一些常见任务. 这个自定义框架继承自PHPUnit_Framework_TestCase,然后修改mySetup()并为我们的代码添加了许多有用的函数.<?phpclass OurUnitTestFramework extends PHPUnit_Framework_TestCase {public $dbMock;protected function mySetup (..) { ... }protected function testHelper () { ... }} ?>现在,在我们的测试代码中,我们只需扩展...

PHPUnit占位符,用于空测试【代码】

我喜欢偶尔为占位符提供空函数(主要是空的构造函数,因为它可以避免构造函数的意外重复,因为我的团队知道某个地方必须始终有一个虚函数). 我还喜欢对一个类的每个方法至少进行一个测试(很大程度上是因为这是让我的团队接受的一个很好的简单规则). 我的问题很简单:我们应该在这些空的测试方法中放什么以防止出现“未测试”警告. 我们可以只做$this-> assertTrue(true),我知道这样就可以了.但是,我想知道是否有什么更正式,更恰当的方...

无法使用PHPunit Selenium执行javascript【代码】

我正在尝试使用PHPUnit命令执行javascript代码.它执行PHP代码并发送电子邮件和其他内容. 但是该php文件中有一些javascript代码,可将一些数据发送到第三方url.这似乎不起作用. 有什么想法如何执行javascript代码吗?解决方法:对于那些正在使用PHPUnit_Extensions_Selenium2TestCase的人,请向Google致谢. @看到https://github.com/sebastianbergmann/phpunit-selenium/issues/160 应为:$this->execute(array('script' => $javaScrip...

PHPUNIT - 相关标签