【问题标题】:Dynamic buttons href tests with phpunit使用 phpunit 进行动态按钮 href 测试
【发布时间】:2017-04-30 07:47:51
【问题描述】:

我正在使用 phpunit 启动我的测试,所以我对如何动态测试事物有疑问。我动态创建了一个表格,如下图所示

这是我的看法:

 <div class="panel-body">
                @if(Session::has('success'))
                <div class="alert alert-success">{{Session::get('success')}}</div>
                @endif
                <table class="table">
                    <th>Unity Name</th>
                    <th>Phone Number</th>
                    <th>Actions</th>
                    <tbody>
                        @foreach($companies as $company)
                            <tr>
                                <td>{{$company->name}}</td>
                                <td>{{$company->owner_number}}</td>
                                <td>
                                <a href="/admin/company/{{$company->id}}" class="btn btn-default fa fa-newspaper-o"></a>
                                <a href="/admin/company/{{$company->id}}/clients" class="btn btn-default fa fa-users"></a>
                                <a href="company/{{$company->id}}/edit" class="btn btn-default fa fa-pencil-square-o"></a>
                                {{Form::open(['method' => 'DELETE', 'url'=>'/admin/company/'.$company->id, 'style' => 'display:inline'])}}
                                    <button type="submit" class="btn btn-default fa fa-trash-o"></button>
                                {{Form::close()}}
                                </td>
                            </tr>
                        @endforeach
                        </tbody>
                    </table>
                </div>
            </div>

那么,如果我之前没有标签 ID,我该如何测试 href 标签?

【问题讨论】:

  • 请尝试在此处粘贴您的代码,而不是添加它的图像。
  • 对不起,我稍后的回复,所以有我的观点,我正在生成我的表格

标签: php laravel unit-testing laravel-5 phpunit


【解决方案1】:

我在 Symfony 项目中做了一些类似的测试。

在开发环境中,我在开发数据库中插入了一些数据。在这一步之后,我启动了功能测试。在这些测试中,我分析了标签的内容。这是您数据中的一个示例:

$client = static::createClient();
$crawler = $client->request('GET', '/yourUrl');
$node = $crawler->filter('#show-company-1');
self::assertNotEmpty($node, "Node #show-company-1 does not exists");
self::assertEmpty( $node->html(), "#show-company-1 content is not empty");
self::assertContains('/admin/company/1', $node->attr('href'), "a#show-company-1.href has not a good value");

在请求之前,您可以添加一些逻辑来确定您的公司的 id。

【讨论】:

  • 首先感谢您的回复!我考虑了一下,因为在我的机器测试中,我总是可以将数据库中排名第一的公司作为我的示例,但如果我没有呢?我只是在询问和思考这种可能性,以及它是否是一个好的模式。
猜你喜欢
  • 2011-10-10
  • 2016-06-04
  • 1970-01-01
  • 2011-06-02
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
相关资源
最近更新 更多