Laravel:PHPUnit并与JavaScript交互

前端之家收集整理的这篇文章主要介绍了Laravel:PHPUnit并与JavaScript交互前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的弹出对话框,由我的Laravel应用程序中的 JavaScript驱动.基本上,在单击时,会向弹出div添加一个类,该类使用CSS过渡将其不透明度从0更改为1.

这是我的测试:

public function testCantFindCodePopup()
{
  $customer = $this->createCustomer();
  $this->fillOutEmailAndDob($customer);

  $this->visit('/product-codes/new')
       ->dontSee("Still can't find your code?");
  $this->click('Can\'t find your code?');
         sleep(0.5);
  $this->see("Call customer service");
}

转换需要300毫秒,所以我认为睡眠500毫秒将解决问题,但没有骰子.

实际上,测试在dontSee上失败了(“仍然无法找到你的代码?”)部分,即使该文本在弹出窗口内部,其中显示:在加载时没有设置.

我做错了什么,或者PHPUnit不知道像capybara那样的CSS和JavaScript(因为它在无头浏览器中运行).

如果我不能将PHPUnit用于这种类型的集成测试,那么我可以使用类似的东西吗?请注意,我在PHPUnit中有大约70个其他测试,因此无论其他工具是什么,它都不能代替批发;理想情况下,它与我的PHPUnit测试一起存在.

编辑

刀片模板的相关部分:

<div class="form-control">
          <label for="product-code">Enter Your{{$second}}Code</label>
          <input type="text" id="product-code" name="product-code" />
        </div>
        <button class="btn btn-dark" type="submit">Submit</button>
        <span class="label-explanation js__popup-toggle">Can't find your code?
          <div class='popup'>
            <span class="popup__close">&times;</span>
            <img src="/assets/images/find-code-pop-up.png" alt="[alt text]" />
            <p class="popup__cannot-find">Still can't find your code?<br/> Call customer service at xxx-xxx-xxxx.</p>

相关CSS:

.popup
  width 300px
  position absolute
  left 35%
  bottom 0
  transition width 0.3s,height 0.3s,opacity 0.3s,transform 0.45s
  opacity 0
  background rgba(255,255,0.9)
  color $brand-primary-dark
  text-align center
  transform scale(0)
  p
    font-size 16px
    text-transform none
    line-height 1.15
  &.js__display
    height auto
    opacity 1
    transform scale(1)
    z-index 9999

.popup__close
  font-size 20px
  position absolute
  top 0
  right 5px
  transition font-size 0.3s
  &:hover
    font-size 24px
你没有做错任何事.在这种情况下,PHPUnit不了解CSS和JavaScript.我正在检查Laravel Testing模块源代码(它扩展了PHPUnit功能),它只使用了一个爬虫.因此,它不会运行任何客户端脚本.实际上,它甚至不呈现页面.

我还没有使用它,但你可以尝试phpunit-spiderling.

原文链接:https://www.f2er.com/laravel/137505.html

猜你在找的Laravel相关文章