PHPUnit TDD,PHP 致命错误:调用未定义的方法

2024-01-11

我正在使用 PHPUnit 启动一个 TDD 项目,但有些事情确实让我烦恼。

似乎只要所有的类和方法都没有实现,所有的测试就无法运行。 如果类或方法尚未实现,我该如何使测试继续事件?

Thanks.

编辑: “TDD 的重点不就是你的测试套件在编写测试时失败吗?” 是的,当然,但我希望对这个项目有一个全球性的了解。 假设我们已经编写了 1000 个测试,第一个运行的测试出现了致命错误。 但我们并不幸运,当我们实现代码时,该部分将是最后实现的部分之一。我不想“盲目”开发,只有在清除所有致命错误后才能运行我的测试套件。

所以,是的,失败的测试与由于在此状态下正常的致命错误而停止/终止的整个测试过程之间存在巨大差异。

作为解决方法,我们在开始编写测试之前创建了类框架。


TDD 的重点不就是你的测试套件在编写测试时失败吗?

我想你的观点是它因致命错误而终止,而不是只显示红色的“我失败”栏。非常有趣的一点是,我正在使用 phpunit 进行 TDD,但这从来没有困扰过我。

我首先想到的是--process-isolation.

Example:

让我们假设一个测试类如下所示:

<?php

class fooTest extends PHPUnit_Framework_TestCase {

    public function testA() {
        $x = new a();
    }

    public function testB() {
        $this->assertTrue(true);
    }
}

使用普通跑步者phpunit test.php:

PHPUnit 3.5.12 by Sebastian Bergmann.

Fatal error: Class 'a' not found in /home/mcsvnls/mep.php on line 6

但当使用phpunit --process-isolation test.php切换它看起来像这样:

PHPUnit 3.5.12 by Sebastian Bergmann.

E.

Time: 1 second, Memory: 3.25Mb

There was 1 error:

1) fooTest::testA
RuntimeException: Fatal error: Class 'a' not found in /home/foo/mep.php on line 6

Call Stack:
    0.0005     102364   1. {main}() /home/foo/-:0
    0.0341    1768644   2. __phpunit_run_isolated_test() /home/foo/-:143
    [...........]

FAILURES!
Tests: 2, Assertions: 1, Errors: 1.

现在第二个测试已执行并通过

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPUnit TDD,PHP 致命错误:调用未定义的方法 的相关文章

随机推荐

  • 如何动态添加分页符到打印页面?

    打印页面上的内容很长 但是我们在打印时将文本的一些内容剪掉了 替代文本 http img694 imageshack us img694 6766 printpage jpg http img694 imageshack us img694
  • Magento - 根据环境加载local.xml

    我想要 3 个app etc local xml文件 将它们称为 local xml staging xml 和 live xml 我想根据我在 vhosts 或 htaccess 中设置的环境变量加载它们 这样我就可以拥有单独的数据库等
  • 为什么 SqlParameter 名称/值构造函数将 0 视为 null?

    我在一段代码中观察到一个奇怪的问题 其中即席 SQL 查询没有产生预期的输出 即使其参数与数据源中的记录匹配 我决定在立即窗口中输入以下测试表达式 new SqlParameter Test 0 Value 这给出了结果null 这让我摸不
  • 如何在WPF中的特定位置添加菜单项?

    我想添加一个像这样的菜单项 AddChild new MenuItem Header Test 然而 问题是菜单项出现在最后 逻辑上 现在我正在寻找一种将其添加到特定位置的方法 A B C 我想将它添加到 A 和 B 之间 XAML 如下所
  • 在 R 中封装 sqldf

    是否可以在sqldf中的字符串内添加注释 就像是 sqldf select ProductID count distinct SalePrice as num regPz from MYDF where SalesFlag 0 coded
  • AndroidStudio - Gradle 中的模块依赖关系

    我在 Android Studio 中使用模块依赖项编译 Android 应用程序时遇到了一些问题 所以 我希望我的应用程序使用 slidingmenu 库 链接here https github com jfeinstein10 Slid
  • 确定 Delphi 中的 WPD 设备类型

    我正在尝试确定我的 WPD 设备在 Delphi 中的类型 在我的应用程序中 我需要知道该设备是手机还是相机或者什么 根据这篇 MSDN 文章 https msdn microsoft com en us library windows h
  • Nginx 无法通过 Ansible 重新启动

    我在剧本中有一个任务 尝试像往常一样通过处理程序重新启动 nginx name run migrations command bash lc some command notify restart nginx 然而 剧本因这个错误而中断 N
  • Feedback.js 服务器 API

    反馈 js http experiments hertzen com jsfeedback 是一个很棒的 jquery 插件 允许您创建反馈表单 其中包括在客户端浏览器上创建的屏幕截图以及表单 如何将捕获的图像和用户的评论发送到服务器端 a
  • 如果未设置变量,则使用函数对其进行初始化 - PHP

    执行脚本时 有时会设置变量 有时不会 有时情况并非如此 我会收到一个通知 表明该变量未定义 为了清除通知 我简单地添加了以下代码 if isset var var NULL 它可以根据需要工作 因为它测试变量是否尚未设置 这样我们就不会设置
  • 有没有办法知道 iOS 中的应用程序何时被删除?

    我的问题是这样的 我在 iOS 应用程序上安排了一些 UILocalNotifications 问题是 如果我删除应用程序而不删除与通知关联的对象 并因此从 ScheduledNotifications 数组中删除通知 通知仍然会触发 尽管
  • 在 C# 中表示什么[重复]

    这个问题在这里已经有答案了 我是 C 新手 直接深入修改我收到的项目的一些代码 但是 我不断看到这样的代码 class SampleCollection
  • Python C API 如何将结构数组从 C 传递到 Python

    对于我正在创建的 python 模块 我想向 python 用户传递一个如下所示的结构数组 struct tcpstat inet prefix local inet prefix remote int lport int rport in
  • CSS规则中选择器的优先级

    让我先展示一下示例代码 tbl tr hover background color FFA270 important tbl td nth child odd background color F0FFE2 cell height 5ex
  • 选项菜单操作栏

    谁能明白为什么我的帮助图标没有显示在操作栏中 我已将代码的相关部分粘贴在下面 谢谢 菜单topline xml
  • 使用 jQuery 交换 div 内容

    这是我的 HTML div class large img src images photos Interior jpg alt The interior div class caption The interior div div div
  • 如何将 POINT mysql 类型与 mysqli - php 一起使用[重复]

    这个问题在这里已经有答案了 基于这张桌子 http php net manual en mysqli stmt bind param php来自 PHP net Type specification chars Character Desc
  • 使用 EF core 2.1 调用 DbFunction

    我尝试调用存储在数据库中的标量函数 这是我的代码 public class PronosticDbContext DbContext public PronosticDbContext DbContextOptions
  • PhoneGap:Camera API getPicture 对话框放大

    在Android 4 4中 使用Camera API getPicture API将导致对话框放大 代码如下 var sourceType pictureSource SAVEDPHOTOALBUM navigator camera get
  • PHPUnit TDD,PHP 致命错误:调用未定义的方法

    我正在使用 PHPUnit 启动一个 TDD 项目 但有些事情确实让我烦恼 似乎只要所有的类和方法都没有实现 所有的测试就无法运行 如果类或方法尚未实现 我该如何使测试继续事件 Thanks 编辑 TDD 的重点不就是你的测试套件在编写测试