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

Laravel测试类属性不持久

步联
2023-03-14

我正在尝试设置一个sensorId属性,该属性将由我的功能测试中的每个方法使用。问题是它在测试之间并没有持续。

这是我的测试类:

class LogApiPostTest extends TestCase
{
    public $sensorId;

    public function setUp(): void
    {
        parent::setUp();

        $this->sensorId = 'SEN' . rand(10000000, 999999999);
    }

    public function test_creates_sensor()
    {
        $response = $this->post('/api/logs', $this->data([
            //
        ]));

        $response->assertStatus(200);
        $response->assertSeeText('Sensor created');
    }

    public function test_updates_sensor()
    {
        $response = $this->post('/api/logs', $this->data([
            //
        ]));

        $response->assertStatus(200);
        $response->assertSeeText('Sensor updated');
    }

    public function test_creates_car()
    {
        $response = $this->post('/api/logs', $this->data([
            'CarID' => 'B',
        ]));

        $response->assertStatus(200);
        $response->assertSeeText('Car created');
    }

    public function test_updates_car()
    {
        $response = $this->post('/api/logs', $this->data([
            'CarID' => 'B',
        ]));

        $response->assertStatus(200);
        $response->assertSeeText('Car updated');
    }

    public function test_is_unauthorized()
    {
        $response = $this->post('/api/logs', $this->data([
            'token_id' => 'thisShouldntWork',
        ]));

        $response->assertUnauthorized();
    }

    public function data($merge = [])
    {
        return array_merge([
            'token_id' => config('api.token'),
            'sensorID' => $this->sensorId,
            'CarID' => 'A',
            'LogType' => 'CarLog',
            'Time' => time(),
            'DrctnFlr' => '-02',
            'MCSS' => 'STB',
            'OpMode' => 'INA',
            'DoorStats' => '][**',
            'DoorCmd' => 'C6:C1>',
            'OCSS' => 'GTN02',
            'Load' => '002%',
        ], $merge);
    }
}

我只希望sensorId属性在该类中的所有测试中保持不变。

共有1个答案

步炯
2023-03-14

当测试之间存在依赖关系时,必须使用@取决于注释。这可以确保测试的执行顺序是正确的,也可以在测试之间传递值。不要让senorId持久化,只需将它从一个测试传递到另一个测试。

https://phpunit.readthedocs.io/en/9.5/writing-tests-for-phpunit.html#test-dependencies

 类似资料:
  • 我正在引用另一个实体类中的实体,并出现此错误。下面是示例代码。我有这些课程在坚持。还有xml。 是什么导致了这个问题?我正在使用Spring数据JPA和Hibernate。

  • 我正在试用IntelliJ IDEA,它警告我一个我不太理解的冬眠协会。 一面: 为了检查一下精神状况,我看了这篇文章,也看了这篇文章。

  • 我熟悉此处定义的Akka测试方法: http://doc.akka.io/docs/akka/snapshot/scala/testing.html 我了解如何使用TestKit、TestActorRef、TestProbe等。我还了解我的核心域逻辑应该与Akka隔离提取和测试。 我的问题是关于在Akka Persistence参与者(即PersistentActor和PersistentView

  • “一对多”属性值类型不应为“持久性实体”

  • 我有一个,我正试图通过SpringMVC测试来测试它。它包含以下: 当我对这个运行测试时,我在这个方法中得到一个。 有没有一种方法可以模拟这个方法,使得模拟的方法被用来代替这个方法进行测试?我已经阅读了关于这个的其他帖子,并认为我可以在测试中传递一个“AuthUser”参数,但这不起作用。最终试图让这个“用户”不要扔NPE...这是我的测试...

  • 问题内容: 我有需要在各种不同的登台环境中运行的JUnit测试。每个环境都有不同的登录凭据或该环境特定的其他方面。我的计划是将环境变量传递到VM中以指示要使用的环境。然后使用该var从属性文件中读取。 JUnit是否有任何内置功能来读取.properties文件? 问题答案: Java内置了读取.properties文件的功能,而JUnit内置了在执行测试套件之前运行安装代码的功能。 java阅读