【发布时间】:2021-05-07 01:01:42
【问题描述】:
我有两个 php 文件。第一个func.php 包含一个函数,第二个funcTest.php 用于测试函数。
第一:
<?php
function func(int $a, int $b, $data) {
echo "$a, $b, $data";
return $a + $b;
}
第二:
<?php
require_once "PHPUnit/Autoload.php";
use PHPUnit\Framework\TestCase;
$data = "Some data";
var_dump($data);
final class funcTest extends PHPUnit_Framework_TestCase {
public function testFunc() {
require "func.php";
$this->assertEquals(3, func(1, 2, $data));
}
}
问题是当我在 cmd 中使用 phpunit 运行测试时,出现以下错误:
有 1 个错误:
- funcTest::testFunc 未定义变量:数据
C:\xampp\htdocs\someproject\funcTest.php:12
附:我在 SO 和其他论坛上发现了类似的问题,但没有一个对我有帮助。所以请不要关闭或DISS我的问题。
【问题讨论】:
-
变量作用域是任何编程语言的基础之一。我建议你彻底阅读奈杰尔链接的问题,你真的到处都需要这些知识。
-
require_once "PHPUnit/Autoload.php";、use PHPUnit\Framework\TestCase;和PHPUnit_Framework_TestCase的组合没有意义。您正在混合不同版本的 PHPUnit。 -
@NigelRen 哦,我明白了。我尝试在 funcTest.php 文件的全局范围内编写 require "func.php",现在它可以工作了!谢谢。
-
@NigelRen 你会写答案吗?我会把它标记为解决我的问题