草庐IT

unit-testing

全部标签

php - TDD与封装优先级冲突

我刚刚开始在我的项目中实践TDD。我正在开发一个项目,现在使用php/zend/mysql和phpunit/dbunit进行测试。我只是对封装和测试驱动方法的想法有点分心。封装背后的想法是隐藏对多个对象功能的访问。更清楚地说,私有(private)和protected函数不能直接测试(除非您将创建一个公共(public)函数来调用它)。所以我最终将一些私有(private)和protected函数转换为公共(public)函数只是为了能够测试它们。我真的违反了封装原则让位给微功能可测试性。这是正确的做法吗? 最佳答案 TDD圈子对此

php - 没有在 PHPUnit 中运行一些测试?

我不想有时为了节省时间而运行所有测试。我知道我可以评论测试。但是这种方法并不优雅。我想知道是否有一些简单的方法可以做到这一点。感谢所有建议。感谢您的宝贵时间和最诚挚的问候,盒子他 最佳答案 phpunitcommandlinetestrunner有--filter参数,它是一个匹配执行的测试用例名称的正则表达式。假设,您需要排除名称中包含“Foo”的所有测试用例。然后,使用:--filter/^(?:(?!Foo).)*$/ 关于php-没有在PHPUnit中运行一些测试?,我们在Sta

php - 区别 <?php echo '$test' ; ?> 和 <?=$test?>

有什么区别和? 最佳答案 假设您的意思是,两者实际上是同一件事。问题是,你想要多便携。几乎所有支持PHP的地方都支持,但是很多管理员禁用语法。 关于php-区别和,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3623458/

php - 了解单元测试

我正在尝试了解单元测试的工作原理。到目前为止,我了解到您正在根据您输入的内容测试函数的输出。好的。这是否意味着如果您的函数只有返回一种数据类型的可能性,您只需要为它编写一个测试?所以说我写了一个只能返回TRUE或FALSE的函数,这是否意味着我只是检查响应是否为bool值?然后还说我有一个功能,可以从数据库中提取博客中的帖子。假设将函数设置为:如果行数=0,则返回FALSE,否则返回结果。所以我现在有可能使用一个可以返回bool值或数组的函数。你怎么测试它?该函数现在不仅仅依赖于输入,它依赖于数据库中的内容。 最佳答案 有用的函数不

php - 如何使用 PHPUnit 获得 100% 的代码覆盖率

我正在编写ZendFramework应用程序并使用PHPUnit对其进行单元测试。总的来说,事情进展顺利,但我有一个小但烦人的PHPUnit和代码覆盖问题-它有时会告诉我特定行未测试,我不知道如何强制对其进行测试。例如,在下面的代码中,我启动了两个测试:一个带有GET请求,一个带有POST请求。测试通过,一切都很好。然而,当我查看代码覆盖率时,它显示“else”行没有执行。publicfunctioneditAction(){if($request->isPost()){//doactionsrelatedtoPOST}else{//doactionrelatedtoGET}}有什么想

php - 在实例化自己对象的函数内部使用 PHP 中的模拟对象

我一直在研究如何将单元测试覆盖范围添加到用PHP编写的大型现有代码库中。静态类和可实例化类中的许多函数调用库或实例化对象以获得与内存缓存和数据库的连接。它们通常看起来像这样:publicfunctiongetSomeData(){$key="SomeMemcacheKey";$cache=get_memcache();$results=$cache->get($key);if(!$results){$database=newDatabaseObject();$sql="SELECT*fromsomeDatabase.someTable";$results=$database->quer

PHPUnit 数据提供者错误

所以我刚开始使用PHPUnit,我正在为一个非常简单的库编写测试。它只包含两个类,所以我认为这是一个很好的起点,这样我就可以掌握单元测试的工作原理。我进行了一级测试没有任何问题,但二级测试让我头疼,因为我无法弄清楚这有什么问题。我的数据提供者似乎出了点问题。roulette=newRoulette();}/**@dataProvideraddItemDataProvider*/publicfunctiontestAddItem($item){$this->assertInstanceOf('PIFlex\Roulette\Roulette',$this->roulette->addIt

PHPUnit - 使用 Zend Framework 应用程序生成代码覆盖率报告时出现问题

我已经在Google和其他各种网站上搜索了好几个小时,但都没有找到这个问题的答案。我已经使用PHPUnit为我的ZendFramework项目创建了一些单元测试。在PHPUnit代码覆盖率报告出现之前,测试一切顺利。此时我收到以下错误:Generatingcodecoveragereport,thismaytakeamoment.Fatalerror:CalltoamemberfunctionpushStack()onanon-objectinC:\htdocs\ZendFWTutorials\ZendStorefront\library\SF\Plugin\Action.phponl

phpunit xml 配置颜色指令不起作用

我为单元测试定义了一个phpunit.xml配置文件。在此文件中,我指示在单元测试结果中显示颜色,如下所示:当我在命令行中运行测试时一切正常,除了结果中没有绿色和红色。如果我删除配置文件并在命令行中使用参数--color=always,那么我会得到带有颜色的结果。在配置文件中,我已经尝试将colors="true"更改为colors="always"但没有结果。我的配置文件有问题吗?这是我的phpunit.xml配置文件:/home/miguelbgouveia/Documents/projects/joomla/teststest_example.php并且phpunit的版本是5.

php - 如何在 PHPUnit 中进行测试;使用 Laravel 编写的 API 上传 CSV 文件?

我想通过LaravelAPI上传CSV文件,然后使用PHPUnit测试上传。Controller中的store()函数和testCreate()函数基本上是什么样的。这是我到目前为止得到的:call('POST','/api/lists-imports/',[],[],['csv_file'=>$file]);$this->dump()->assertResponseOk();}}Controller方法如下所示:file('importFile')->move(public_path('storage.crm.data'),$request->file('importFile')->