当前位置: 首页 > 知识库问答 >
问题:

在codeception中使用StepObjects,错误消息:[ErrorException]未定义变量:场景

宰父深
2023-03-14

我使用编码器与laravel4来测试我的API。我有一套功能,需要在不同的测试中多次使用。基于这个链接中的一个例子,这里是我的代码:_steps文件夹中的代码

namespace ApiTester;
 
 class generalSteps extends \ApiTester {
 
     public function json_format( $path = "/users/me", $desc = "TEST") {
         $I = $this;
         $I->wantTo($desc);
         $I->amBearerAuthenticated(\LoginCest::$token);
         $I->sendPOST($path);
        $I->seeResponseJsonMatchesJsonPath('$.content.data');
    } }

my_bootstrap.php文件:

  \Codeception\Util\Autoload::registerSuffix('Steps',
     __DIR__.DIRECTORY_SEPARATOR.'_steps');

下面是我如何尝试在API文件夹下的函数中访问它:

public function correct_json_format(ApiTester $I) {
       $I= new \ApiTester\generalSteps($scenario);
        $I->json_format(self::$path, "Testing the Json format for view my profile");
    }

当我运行的时候。/供应商/bin/codecep运行api-vvv我得到的错误是:未定义的变量:场景,这是由这行代码引起的:

$I=new\ApiTester\generalSteps($scenario);

这是我得到的全部错误:

未定义的变量:场景

PHPUnit_Framework_TestResult-

PHPUnit_框架_测试用例-

PHPUnit_框架_测试套件-

Codeception\PHPUnit\Runner-

代码欺骗\SuiteManager-

Codeception\Codecept-

Codeception\Codecept-

代码欺骗\命令\运行-

代码欺骗\命令\运行-

Symfony\组件\控制台\命令\命令-

Symfony\Component\Console\Application-

Symfony\Component\Console\Application-

Symfony\Component\Console\Application-

共有1个答案

左丘子平
2023-03-14

您需要$scenario变量。如果在CEST的函数调用中添加第二个参数,就可以得到它。如果您将它们添加到参数列表中,它将自动提供给您的测试方法。

public function correct_json_format(ApiTester $I, $scenario) {
  $I= new \ApiTester\generalSteps($scenario);
  $I->json_format(self::$path, "Testing the Json format for view my profile");
}
 类似资料:
  • 我有这个代码,其中数据被定义,就我所能看到的,这些是我得到的错误: 遇到PHP错误 严重性:通知 消息:未定义变量:empdata 文件名:视图/employee.php 电话号码:51** 回溯: 文件:C:\xampp\htdocs\providentfund\application\views\employee。php行:51函数:\u错误\u处理程序 File: C:\xampp\htdo

  • 所以我刚刚开始使用Codeception(我知道,我玩游戏迟到了)和Yii2。我遇到了一个错误,我似乎没有得到纠正。 问题 当我运行'代码欺骗运行'时,我得到错误'错误与消息'类yii\代码欺骗\TestCase未找到'。这对我来说很奇怪,因为当我寻找测试案例时,我可以找到多个测试案例!F. e.在文件夹后端,控制台,... 信息 Codeception已在全球范围内安装 我做错了什么? 如果你们

  • 问题内容: 在jQuery的核心风格指南建议两种不同的方法来检查一个变量是否被定义。 全局变量: 局部变量: 特性: 为什么jQuery为什么对全局变量使用一种方法而对局部变量和属性使用另一种方法? 问题答案: 对于未声明的变量,将返回字符串文字,而身份检查将触发错误 “未定义foo” 。 对于局部变量(您 知道 已在某处声明),不会发生此类错误,因此进行身份检查。

  • 我使用的是关于这个链接的教程: http://www.mkyong.com/spring-security/display-custom-error-message-in-spring-security/ 在登录表单上显示一个自定义错误消息,我在开始时就得到了它。但是在为自定义失败身份验证器处理程序声明authentication-failure-handler-ref=“myautherrorh

  • 安全测试人员声称,我应该清理返回的JSON(即转义这些符号),因为这可能会给旧的浏览器带来一些问题(即在浏览器中执行此JS代码)。 但是生成错误消息的是SpringBoot框架, 我在这里没有太多的控制权。 当然,我可以将参数定义为String,并自己进行验证,但我怀疑这是否是正确的方法。我的参数定义为Integer,我希望它保持这种方式。 做这件事最简单的方法是什么?

  • 我只是想在我的电脑上运行tomcat,但我遇到了这个错误 Catalina_Home变量在此环境中定义不正确 仅供参考:我已尝试搜索有关错误的信息,并找到有关此错误的一些信息。但是,不幸的是,这并不能解决我的问题。 以下是启动的内容。蝙蝠档案。谢谢[在此处输入图像描述][1] @echooff rem根据一个或多个rem贡献者许可协议授权给Apache软件基金会(ASF)。有关版权所有的其他信息,