问题标签 [simpletest]

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 投票
1 回答
824 浏览

php - Simpletest PHP 脚本浏览器...如何测试提交表单名称中包含 [ ] 的表单(基本上是数组格式)?

我正在使用 simpletest,php 可编写脚本的浏览器,并尝试测试提交数组格式的表单,如下所示:

其他输入名称以“会话”开头,所以我必须给出每个输入的全名,但是当我在我的 PHP 脚本中这样做时,它似乎不起作用:

我想知道是否有人知道正确执行此操作的方法,或者我可以将其设置为查看输入的 id,因为这始终是唯一的,据我所知,我什至不明白他们为什么选择 name而不是 ID 作为用于此的字段...

任何意见是极大的赞赏。

0 投票
4 回答
23610 浏览

php - 如何在 simpleTest 中捕获“未定义索引”E_NOTICE 错误?

我想使用 simpleTest 编写一个测试,如果我正在测试的方法导致 PHP E_NOTICE“未定义索引:foo”,它将失败。

我试过了expectError()expectException()但没有成功。simpleTest 网页表明 simpleTest 无法捕获编译时 PHP 错误,但E_NOTICE似乎是运行时错误。

有没有办法捕捉到这样的错误并让我的测试失败?

0 投票
1 回答
304 浏览

php - 在 Zend Redirector 动作助手中使用 set redirectUrl 方法

我在 SimpleTest 中对 Zend_Controller_Action 的一些扩展进行单元测试。我希望能够使用 Redirector 操作助手的 set 方法设置重定向 url,然后使用 Redirector 的 redirectAndExit() 方法在该过程的后期实际重定向。从阅读文档并查看动作控制器、重定向器和响应类中的代码来看,这个过程似乎没有像我预期的那样工作。

这是我编写的 UnitTestCase 方法:

App_Zend_Controller_Action 类仅仅是抽象类 Zend_Controller_Action 的具体扩展。我在这里所做的只是实例化控制器并设置重定向 url。正如预期的那样,SimpleTest 报告器首先发送标头。但是这个测试方法会产生一个“headers sent”异常,我不明白为什么。我不知道在这种情况下调用了任何 run() 或 dispatch() 方法。

发送第二组标头的是什么?

0 投票
3 回答
1039 浏览

php - 除了 chdir() 和 chroot() 之外,还有什么可以改变 php Windows 中的目录?(简单测试包含 Windows 中的文件错误)

(对不起,如果标题不好。我实际上是在尝试完成两件事 - 找出如何在 PHP 中更改当前目录,并修复在 WAMP 上运行的 Simpletest 中的错误。)

我在 EasyPHP(WAMP 变体)上的 Windows 7 本地计算机上运行 SimpleTest(simpletest.org)。

当我运行测试时,根据 getcwd(),目录从本地脚本目录更改回:C:\Program Files (x86)\EasyPHP\apache。

我创建了几个简短的脚本来检查 getcwd() 输出。它们按预期返回当前脚本路径:C:\Users\Burton\Desktop\Sites\dbmover。脚本:

服务器路径/getcwd.php:<? echo getcwd(); require_once('tests/getcwd.php) ?>

服务器路径/测试/getcwd.php:<? echo getcwd(); ?>

两者都返回当前路径:C:\Users\Burton\Desktop\Sites\dbmover

我通过 Simpletest 源进行了搜索,以检查 chdir() 和 chroot() 的使用——这是唯一的方法。Simpletest 不使用 chdir();

还有什么可以改变路径?

对于 Windows 中使用的 Simpletest,这种相对路径问题显然很常见。 stackoverflow 上有这张海报,其他地方的这张海报也有。

有些 认为这个问题是正常的,但我认为这是一个错误。

我自己通过使用 dirname( __FILE__) 来解决它,但我宁愿修复它以使其正常工作。

0 投票
2 回答
1085 浏览

php - 带有 CodeIgniter 的 SimpleTest -- 不会识别文件 -- 变量会死掉吗?

我正在尝试将 SimpleTest 与 CodeIgniter 一起使用,使用maroonbytes提供的代码。我正在使用 LAMP 和 NetBeans 6.9。

test.php 页面在我的浏览器中加载。我有一个存根测试,它显示在下拉选择中。当我尝试运行它时,我收到 2 个 PHP 错误:

消息:include_once(/var/www/sparts3/main/tests/basic_test_v.php):无法打开流:没有这样的文件或目录

消息:include_once(): 未能打开 '/var/www/sparts3/main/tests/basic_test_v.php' 以包含 (include_path='.:/usr/share/php:/usr/share/pear')

路径错误 - basic_test_v.php在子文件夹/tests/views中。

调试器在test.php中指向这个:

出于某种原因,NetBeans 此时没有公开 $file 的值。这是否意味着它是空的?

我已经 jimmied 一行代码,因为它让我通过了 Code 404 Page Not Found。似乎调试器 GET 导致验证器失败。所以我以我无知的方式添加了一个标准(我确定它应该是一个已处理的异常或其他东西):

我该如何解决这个问题?顺便说一句,这是试图解决我的另一篇文章,我将对其进行更新;似乎最好把这个问题变成一个离散的问题。


更新 1: 我一直在使用 Web Developer 插件 (Firefox) 来试验 POST 条目。我相信这些在代码中处理不当。在调试时,NetBeans 似乎仍然不愿显示一些字符串变量;这令人沮丧。

更新 2: 在我看来,有效的代码处理在 NetBeans 停止显示变量的同一点停止。我正在逐步完成test.php。我正在完成一个函数add_test($file, &$test)。此函数以 if 语句打开;完成得很好,我可以看到变量。然后是一个新的 if 语句:

一旦我在那条线上,就会发生两件事:

  1. NetBeans 中显示的变量变为空白,除了 SuperGlobals
  2. 代码表现得好像 $implementation是一个空变量

我在这些行上方添加了一条语句:

这不会改变任何事情。无论我是否使用 NetBeans/Xdebug,浏览器的输出都是一样的。

所以它开始看起来像一个 PHP 处理故障。那些存在吗?我可能会尝试从主机服务上传和尝试——仅用于诊断线索,而且很无聊,因为没有调试能力的 CI 对我来说是不感兴趣的。


更新 3: 我在 WAMP PC 上尝试了一切。相同的浏览器结果(加上一些“已弃用”的错误,与 PHP 4 与 5 有关)。我想我可以在那台 PC 上调试(如果 Xdebug 正在运行),但似乎没什么意义。

0 投票
4 回答
11627 浏览

php - 如何在 PHP 中编写文件上传测试?

我正在使用 simpleTest 编写我的 PHP 测试。我正在编写一个文件上传插件,并且想知道如何测试它。

我想检查文件是否正确上传,在正确的文件夹中,在需要时正确返回错误等。

如何模拟文件上传(通过 $_FILES 变量)?有什么我应该注意的问题吗?

0 投票
1 回答
574 浏览

simpletest - 如何在 simpletest unittest 类中运行单个测试方法?

这是我的单元测试课

当我运行此脚本时,所有方法,即 testAc1、testAc4、testAc7 等都会运行。有没有办法只执行一个方法?

谢谢, 希哈尔

0 投票
1 回答
387 浏览

php - 从 SimpleTest 转换为 PHPUnit $this->UnitTestCase('message .....');

PHPUnit 中的哪个动作/方法等于 simpleTest 中的:

编辑:对不起我的错误


我认为我所问的问题不存在于简单的测试中,它只是我们的扩展类。

但是这个方法在测试开始时会显示消息——它是如何用 PHPUnit 完成的?

谢谢

0 投票
2 回答
1050 浏览

cakephp - 您如何从 Hudson 运行 SimpleTest?

我正在使用 CakePHP 做一些工作并想使用 Hudson。我可以运行各种插件,但我没有看到 SimpleTest 的任何内容。在 Cake 2.0 出现并且他们转向 PHPUnit 之前,我想弄清楚如何使用 Hudson 运行 SimpleTest。

0 投票
2 回答
133 浏览

php - 如何测试使用抽象类的插件接口?

我正在使用 PHP 5.3 和 SimpleTest,但欢迎提供更一般的答案。每个插件都将是一个扩展抽象类的类......我如何测试这个接口是否正常工作?我必须创建几个插件并测试它们吗?还是有更满意的方式?

例如,想象写一些东西来代表金钱。用户可以使用不同的货币类别来扩展它。

抽象类 Money
{
私有静态 $symbol;
私人静态 $num_decimals;

公共函数 __construct($amount) { ...}
公共函数 __toString() { ... }
}

然后一个插件看起来像这样:

类 GBPound 扩展货币
{
private static $symbol = "£";
私有静态 $num_decimals = 2;
}

也许我可以模拟多重继承,扩展 UnitTest 类和 money 类,但这可能会变得一团糟!

之所以这么难,是因为单元测试就是测试接口,而类本身就是插件接口。