dependencyMock = Mockery::mock('ActionDependencyInterface'); $this->action = new {{ClassName}}($this->dependencyMock); } protected function tearDown(): void { Mockery::close(); parent::tearDown(); } #[Test] public function it_handles_action_invocation_successfully(): void { // 1. Arrange: Chuẩn bị payload/DTO đầu vào $payload = ['key' => 'value']; $expectedResult = 'success_result'; $this->dependencyMock ->shouldReceive('process') ->once() ->with($payload) ->andReturn($expectedResult); // 2. Act: Thực thi invokable Action $actualResult = ($this->action)($payload); // 3. Assert: Kiểm tra chặt chẽ giá trị trả về $this->assertSame($expectedResult, $actualResult); } }