首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在laravel中对视图进行单元测试?

在laravel中对视图进行单元测试?
EN

Stack Overflow用户
提问于 2019-04-04 14:34:37
回答 3查看 2.4K关注 0票数 0

如何对返回视图的控制器函数进行单元测试。下面是我的控制器函数

代码语言:javascript
复制
public function index(Request $request)
{
   $data = Data::all();
   return view('index',[
       'data' => $data
   ]);
}

下面是测试代码

代码语言:javascript
复制
public function testIndex()
{
   $response = $this->withoutMiddleware();

   $response = $this->get('/user');

   $response->assertSuccessful();
}

我试过了

代码语言:javascript
复制
public function testIndex()
{
   $response = $this->withoutMiddleware();

   $response = $this->get('/user');

   $response = $this->assertContains('data', $response->content());

   $response->assertSuccessful();
}

这显示了错误

错误:对null调用成员函数assertSuccessful()

有什么想法吗,如何为我的索引控制器函数编写测试用例?

EN

回答 3

Stack Overflow用户

发布于 2019-05-22 06:17:18

您在第一个断言中重新分配了$response。不需要这么做

我不知道assertContains从我的脑海中返回了什么,但我打赌它不是$this。

老实说,除了来自$response查询的响应之外,我不知道为什么示例一开始就让您将任何内容赋值给HTTP。

代码语言:javascript
复制
public function testIndex()
{
   $this->withoutMiddleware();
   $response = $this->get('/user');
   $this->assertContains('data', $response->content());
   $response->assertSuccessful();
}
票数 1
EN

Stack Overflow用户

发布于 2020-04-20 23:33:31

你也可以使用

代码语言:javascript
复制
$response->assertSeeText('data');

https://laravel.com/docs/7.x/http-tests#assert-see-text

票数 0
EN

Stack Overflow用户

发布于 2020-04-21 04:39:13

您可以使用以下代码

代码语言:javascript
复制
$this->get('/user')->assertViewHas('data');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55509287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档