- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的测试文件夹如下所示:
- Tests
- folder
-- classTest.php
- anotherClassTest.php
在我创建 folder/classTest.php
之前,PHPUnit 完美地测试了 anotherClassTest.php
但自从我添加了 folder/classTest.php
它只测试那个,不再测试 anotherClassTest.php
。
我的配置是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
strict="true"
bootstrap="./Tests/Bootstrap.php"
>
<testsuites>
<testsuite name="unit">
<directory>Tests/*</directory>
</testsuite>
</testsuites>
<logging>
<log type="testdox-html" target="Tests/results.html"/>
</logging>
<filter>
<blacklist>
<directory suffix=".php">vendor</directory>
</blacklist>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">Tests/</directory>
</whitelist>
</filter>
</phpunit>
这里出了什么问题?
更新:另一个ClassTest.php
<?php
/**
* Created by PhpStorm.
* User: chris
* Date: 15-03-17
* Time: 14:36
*/
use PHPUnit\Framework\TestCase;
/**
* Class KeyAgencyGeneralTest
*/
class KeyAgencyGeneralTest
extends TestCase
{
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleInfo
* Test if method is static
* @todo improve test; do not make use of reflection class and $method->name ==
*/
public function testGetModuleInfoIsAStaticMethod()
{
$mock = $this->createMock(\ProcessWire\KeyAgencyGeneral::class);
$refl = new ReflectionClass(get_class($mock));
$staticMethods = $refl->getMethods(ReflectionMethod::IS_STATIC);
/** @var ReflectionMethod $method */
foreach ($staticMethods as $method) {
if ($method->name == 'getModuleInfo') {
$this->assertEquals('getModuleInfo', $method->name);
}
}
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleInfo
* Test is response is an array
*/
public function testGetModuleInfoReturnsArray()
{
$this->assertInternalType(
'array',
\ProcessWire\KeyAgencyGeneral::getModuleInfo()
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleInfo
* Test array for correct keys
*/
public function testGetModuleInfoContainsRequiredKeys()
{
$result = \ProcessWire\KeyAgencyGeneral::getModuleInfo();
$this->assertArrayHasKey('autoload', $result);
$this->assertArrayHasKey('href', $result);
$this->assertArrayHasKey('requires', $result);
$this->assertArrayHasKey('singular', $result);
$this->assertArrayHasKey('title', $result);
$this->assertArrayHasKey('version', $result);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Test if return value of with correct input is an array
*/
public function testParseLoadStringReturnsArrayWhenParsingModel()
{
$this->assertInternalType(
'array',
$this
->__getInstance()
->_parseLoadString('model', 'KeyAgencyGeneral/abstract')
);
}
/**
* Get instance of module KeyAgencyGeneral
*
* @param bool $reflection return reflection class
* @return \ProcessWire\KeyAgencyGeneral|ReflectionClass
*/
private function __getInstance($reflection = false)
{
if ($reflection) {
return new ReflectionClass(\ProcessWire\KeyAgencyGeneral::class);
}
return new \ProcessWire\KeyAgencyGeneral();
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_getObserver
* Test if KeyAgencyGeneral_Model_Observer is returned
*/
public function testGetObserverReturnsCorrectInstance()
{
$this->assertInstanceOf(
\ProcessWire\KeyAgencyGeneral_Model_Observer::class,
$this
->__getReflectionMethod('_getObserver')
->invoke($this->__getInstance())
);
}
/**
* Get method from reflection class
*
* @param $method
* @return ReflectionMethod
*/
private function __getReflectionMethod($method)
{
$method = $this->__getInstance(true)->getMethod($method);
$method->setAccessible(true);
return $method;
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Check if array response has the required array keys when loading abstract model
*/
public function testParseLoadStringContainsRequiredPartsWhenParsingModel()
{
$result = $this
->__getInstance()
->_parseLoadString('model', 'KeyAgencyGeneral/abstract');
$this->assertArrayHasKey('file', $result);
$this->assertArrayHasKey('location', $result);
$this->assertArrayHasKey('className', $result);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Test if exception is thrown when invalid model is trying to load
*/
public function testParseLoadStringThrowsExceptionOnInvalidInputStringWhenParsingModel()
{
$this->expectException(\Exception::class);
$this
->__getInstance()
->_parseLoadString('model', 'KeyAgencyGeneral');
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Test if return value of with correct input is an array
*/
public function testParseLoadStringReturnsArrayWhenParsingHelper()
{
$this->assertInternalType(
'array',
$this
->__getInstance()
->_parseLoadString('helper', 'KeyAgencyGeneral/abstract')
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Check if array response has the required array keys when loading abstract helper
*/
public function testParseLoadStringContainsRequiredPartsWhenParsingHelper()
{
$result = $this
->__getInstance()
->_parseLoadString('helper', 'KeyAgencyGeneral/abstract');
$this->assertArrayHasKey('file', $result);
$this->assertArrayHasKey('location', $result);
$this->assertArrayHasKey('className', $result);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_parseLoadString
* Test if exception is thrown when invalid helper is trying to load
*/
public function testParseLoadStringThrowsExceptionOnInvalidInputStringWhenParsingHelper()
{
$this->expectException(\Exception::class);
$this
->__getInstance()
->_parseLoadString('helper', 'KeyAgencyGeneral');
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_capitalize
* Check for capitalized output
*/
public function testCapitalize()
{
$this->assertEquals(
'This_Is_A_Test_Response',
$this
->__getReflectionMethod('_capitalize')
->invoke($this->__getInstance(), 'this_is_a_test_response')
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_underscore
* Check if string is correctly underscored
*/
public function testUnderscoreWithStringInput()
{
$this->assertEquals(
'this_is_a_test_response',
$this
->__getReflectionMethod('_underscore')
->invoke($this->__getInstance(), 'This is a-test.response')
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_underscore
* Check if array is correctly underscored
*/
public function testUnderscoreWithArrayInput()
{
$this->assertEquals(
'this_is_a_test_response_this_is_a_test_with_an_array',
$this
->__getReflectionMethod('_underscore')
->invoke($this->__getInstance(), [
'This is a-test.response',
'This-is-A.test with.an ArrAy'
])
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_isFile
* Check if file exists
*/
public function testIsFile()
{
$this->assertTrue(
$this->__getReflectionMethod('_isFile')->invoke(
$this->__getInstance(),
__FILE__
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::isAdmin
* Test if method is only responding to admin pages
* @todo write test
*/
public function testIsAdmin()
{
$this->assertFalse(
true,
false
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getPage
* Test if page is retrievable by null
*/
public function testGetPageByNull()
{
$this->assertInstanceOf(
\Processwire\Page::class,
$this->__getReflectionMethod('getPage')->invoke(
$this->__getInstance(),
null
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getPage
* Test if page is retrievable by ID
*/
public function testGetPageById()
{
$this->assertInstanceOf(
\Processwire\Page::class,
$this->__getReflectionMethod('getPage')->invoke(
$this->__getInstance(),
1
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getPage
* Test if page is retrievable by url path
*/
public function testGetPageByUrlPath()
{
$this->assertInstanceOf(
\Processwire\Page::class,
$this->__getReflectionMethod('getPage')->invoke(
$this->__getInstance(),
'/'
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleConfigInputfields
* Test if method returns instance of \Processwire\InputfieldWrapper
*/
public function testGetModuleConfigInputfieldsOnInstance()
{
$this->assertInstanceOf(
\ProcessWire\InputfieldWrapper::class,
$this->__getReflectionMethod('getModuleConfigInputfields')->invoke($this->__getInstance())
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleConfigInputfields
* Test if method returns required fields
*/
public function testGetModuleConfigInputfieldsOnRequiredFields()
{
$this->assertInstanceOf(
\ProcessWire\InputfieldText::class,
$this->__getReflectionMethod('getModuleConfigInputfields')
->invoke($this->__getInstance())
->get(\ProcessWire\KeyAgencyGeneral::OPTION_SITE_TITLE)
);
$this->assertInstanceOf(
\ProcessWire\InputfieldText::class,
$this->__getReflectionMethod('getModuleConfigInputfields')
->invoke($this->__getInstance())
->get(\ProcessWire\KeyAgencyGeneral::OPTION_SEO_DESCRIPTION)
);
$this->assertInstanceOf(
\ProcessWire\InputfieldText::class,
$this->__getReflectionMethod('getModuleConfigInputfields')
->invoke($this->__getInstance())
->get(\ProcessWire\KeyAgencyGeneral::OPTION_SEO_KEYWORDS)
);
$this->assertInstanceOf(
\ProcessWire\InputfieldCheckbox::class,
$this->__getReflectionMethod('getModuleConfigInputfields')
->invoke($this->__getInstance())
->get(\ProcessWire\KeyAgencyGeneral::OPTION_PRODUCT_MAIN_NAVIGATION_CATEGORIES)
);
$this->assertInstanceOf(
\ProcessWire\InputfieldText::class,
$this->__getReflectionMethod('getModuleConfigInputfields')
->invoke($this->__getInstance())
->get(\ProcessWire\KeyAgencyGeneral::OPTION_SITE_TITLE)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getDisplayOptions
* Test if display options does return an array
*/
public function testGetDisplayOptionsForTypeArray()
{
$this->assertInternalType(
'array',
$this->__getReflectionMethod('getDisplayOptions')->invoke(
$this->__getInstance()
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::getModuleInfo
* Test array for correct keys
*/
public function testGetDisplayOptionsContainsRequiredKeys()
{
$result = $this->__getReflectionMethod('getDisplayOptions')->invoke(
$this->__getInstance()
);
$this->assertArrayHasKey(1, $result);
$this->assertArrayHasKey(2, $result);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_isInstalled
* Test if method returns boolean
*/
public function testIsInstalled()
{
$this->assertInternalType(
'bool',
$this->__getReflectionMethod('_isInstalled')->invoke(
$this->__getInstance(),
'KeyAgencyGeneral'
)
);
$this->assertInternalType(
'bool',
$this->__getReflectionMethod('_isInstalled')->invoke(
$this->__getInstance(),
'nonexistingmodule'
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral::_getCurrencyOptions
* Check if currency options is returning an array
*/
public function testGetCurrencyOptionsIsArray()
{
$mock = $this->getMockBuilder(\ProcessWire\KeyAgencyGeneral::class)
->setMethods([
'_isInstalled'
])
->getMock();
$mock// set mock method to return always false and to be called 2 times
->expects($this->exactly(2))
->method('_isInstalled')
->willReturn(false);
// create reflection class to make private method accessible
$reflectionClass = new ReflectionClass($mock);
$reflectionMethod = $reflectionClass->getMethod('_getCurrencyOptions');
$reflectionMethod->setAccessible(true);
$this->assertInternalType(
'array',
$reflectionMethod->invoke(
$mock
)
);
$mock// set mock method to return always true
->method('_isInstalled')
->willReturn(true);
$this->assertInternalType(
'array',
$reflectionMethod->invoke(
$mock
)
);
}
}
文件夹/classTest.php
<?php
/**
* Created by PhpStorm.
* User: chris
* Date: 16-03-17
* Time: 10:40
*/
use PHPUnit\Framework\TestCase;
/**
* Class KeyAgencyGeneral_Helper_AbstractTest
*/
class KeyAgencyGeneral_Helper_AbstractTest
extends TestCase
{
/**
* Get instance of module KeyAgencyGeneral_Helper_Abstract
*
* @param bool $reflection Return reflection class when set to true
* @return \ProcessWire\KeyAgencyGeneral_Helper_Abstract|ReflectionClass
*/
private function __getInstance($reflection = false)
{
if ($reflection) {
return new ReflectionClass(\ProcessWire\KeyAgencyGeneral_Helper_Abstract::class);
}
return new \ProcessWire\KeyAgencyGeneral_Helper_Abstract();
}
/**
* Get method from reflection class
*
* @param $method
* @return ReflectionMethod
*/
private function __getReflectionMethod($method)
{
$method = $this
->__getInstance(true)
->getMethod($method);
$method->setAccessible(true);
return $method;
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral_Helper_Abstract::_getModule
* Check for correct module instance
*/
public function testGetModule()
{
$this->assertInstanceOf(
\ProcessWire\KeyAgencyGeneral::class,
$this->__getReflectionMethod('_getModule')->invoke(
$this->__getInstance()
)
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral_Helper_Abstract::getFile
* Test for file content (string)
*/
public function testGetFileReturnsStringWhenFileExists()
{
$this->assertInternalType(
'string',
$this->__getInstance()->getFile('KeyAgencyGeneral/image')
);
}
/**
* Test for: \ProcessWire\KeyAgencyGeneral_Helper_Abstract::getFile
* Test for file content (string)
*/
public function testGetFileReturnsStringWhenFileDoesNotExist()
{
$this->assertInternalType(
'string',
$this->__getInstance()->getFile('ThisDoesNot/exist')
);
}
}
最佳答案
你有
<testsuite name="unit">
<directory>Tests/*</directory>
</testsuite>
这个目录下是你的文件吗?
关于phpunit 只处理一个文件而不是多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835370/
对于 Metal ,如果对主纹理进行 mipmap 处理,是否还需要对多采样纹理进行 mipmap 处理?我阅读了苹果文档,但没有得到任何相关信息。 最佳答案 Mipmapping 适用于您将从中
我正在使用的代码在后端 Groovy 代码中具有呈现 GSP(Groovy 服务器页面)的 Controller 。对于前端,我们使用 React-router v4 来处理路由。我遇到的问题是,通过
我们正在 build 一个巨大的网站。我们正在考虑是在服务器端(ASP .Net)还是在客户端进行 HTML 处理。 例如,我们有 HTML 文件,其作用类似于用于生成选项卡的模板。服务器端获取 HT
我正在尝试将图像加载到 void setup() 中的数组中,但是当我这样做时出现此错误:“类型不匹配,'processing .core.PImage' does not匹配“processing.
我正在尝试使用其私有(private)应用程序更新 Shopify 上的客户标签。我用 postman 尝试过,一切正常,但通过 AJAX,它带我成功回调而不是错误,但成功后我得到了身份验证链接,而不
如何更改我的 Processing appIconTest.exe 导出的默认图标在窗口中的应用程序? 默认一个: 最佳答案 经过一些研究,我能找到的最简单的解决方案是: 进入 ...\process
我在 Processing 中做了一个简单的小游戏,但需要一些帮助。我有一个 mp3,想将它添加到我的应用程序中,以便在后台循环运行。 这可能吗?非常感谢。 最佳答案 您可以使用声音库。处理已经自带
我有几个这样创建的按钮: 在 setup() PImage[] imgs1 = {loadImage("AREA1_1.png"),loadImage("AREA1_2.png"),loadImage
我正在尝试使用 Processing 创建一个多人游戏,但无法弄清楚如何将屏幕分成两个以显示玩家的不同情况? 就像在 c# 中一样,我们有Viewport leftViewport,rightView
我一直在尝试使用 Moore 邻域在处理过程中创建元胞自动机,到目前为止非常成功。我已经设法使基本系统正常工作,现在我希望通过添加不同的功能来使用它。现在,我检查细胞是否存活。如果是,我使用 fill
有没有办法用 JavaScript 代码检查资源使用情况?我可以检查脚本的 RAM 使用情况和 CPU 使用情况吗? 由于做某事有多种方法,我可能会使用不同的方法编写代码,并将其保存为两个不同的文件,
我想弄清楚如何处理这样的列表: [ [[4,6,7], [1,2,4,6]] , [[10,4,2,4], [1]] ] 这是一个整数列表的列表 我希望我的函数将此列表作为输入并返回列表中没有重复的整
有没有办法在不需要时处理 MethodChannel/EventChannel ?我问是因为我想为对象创建多个方法/事件 channel 。 例子: class Call { ... fields
我有一个关于在 Python3 中处理 ConnectionResetError 的问题。这通常发生在我使用 urllib.request.Request 函数时。我想知道如果我们遇到这样的错误是否可
我一直在努力解决这个问题几个小时,但无济于事。代码很简单,一个弹跳球(粒子)。将粒子的速度初始化为 (0, 0) 将使其保持上下弹跳。将粒子的初始化速度更改为 (0, 0.01) 或任何十进制浮点数都
我把自己弄得一团糟。 我想在我的系统中添加 python3.6 所以我决定在我的 Ubuntu 19.10 中卸载现有的。但是现在每次我想安装一些东西我都会得到这样的错误: dpkg: error w
我正在努力解决 Rpart 包中的 NA 功能。我得到了以下数据框(下面的代码) Outcome VarA VarB 1 1 1 0 2 1 1 1
我将 Java 与 JSF 一起使用,这是 Glassfish 3 容器。 在我的 Web 应用程序中,我试图实现一个文件(图像)管理系统。 我有一个 config.properties我从中读取上传
所以我一直在Processing工作几个星期以来,虽然我没有编程经验,但我已经转向更复杂的项目。我正在编写一个进化模拟器,它会产生具有随机属性的生物。 最终,我将添加复制,但现在这些生物只是在屏幕上漂
有人知道 Delphi 2009 对“with”的处理有什么不同吗? 我昨天解决了一个问题,只是将“with”解构为完整引用,如“with Datamodule、Dataset、MainForm”。
我是一名优秀的程序员,十分优秀!