PHPUnit如何获取类属性?
为了测试API调用,我想测试实体生命周期PHPUnit如何获取类属性?,phpunit,Phpunit,为了测试API调用,我想测试实体生命周期 无内容获取 发布内容,返回ID 修补内容 知足 删除内容 我将使用post方法中返回的ID。我尝试在测试类中使用私有属性,但在每个方法测试中,该属性都会重置。如何在测试类中使用动态变量进行测试 我的代码和PHPUnit的响应示例: class CommentControllerTest extends PHPUnit_Framework_TestCase { private $commentId; public function s
- 无内容获取
- 发布内容,返回ID
- 修补内容
- 知足
- 删除内容
class CommentControllerTest extends PHPUnit_Framework_TestCase
{
private $commentId;
public function setUp()
{
}
public function testPostValidComment()
{
$this->commentId = 42;
}
public function testUpdateComment()
{
var_dump($this->commentId); // NULL
}
public function testDeleteComment()
{
var_dump($this->commentId); // NULL
}
}
为什么我的
var\u转储($this->commentId)代码>返回NULL
?使用@depends注释建立执行顺序并将值从一个测试传递到下一个测试:
class CommentControllerTest extends PHPUnit_Framework_TestCase
{
public function testPostValidComment()
{
$commentId = 42;
return $commentId;
}
/**
* @depends testPostValidComment
*/
public function testUpdateComment($commentId)
{
return $commentId;
}
/**
* @depends testUpdateComment
*/
public function testDeleteComment($commentId)
{
}
}
注意:
如果一个测试失败,依赖它的其他测试将不会运行。因此,对于示例设置:
测试发布->测试更新->测试删除
如果更新失败,您将不知道删除是否有效
要解决此问题,可以将依赖链更改为如下所示:
测试后->测试更新
测试发布->测试删除
因此,如果更新失败,将测试删除。在这种情况下,将执行两次后测试,一次用于更新,另一次用于删除
.很遗憾,我无法在属性定义或设置方法中设置值。因为该值是在post方法期间生成的(42不是静态的,它可能是76或89879…)。我会用它来更新和删除发布的内容。