我有一个非常简单的弹出对话框,由我的Laravel应用程序中的
JavaScript驱动.基本上,在单击时,会向弹出div添加一个类,该类使用CSS过渡将其不透明度从0更改为1.
原文链接:https://www.f2er.com/laravel/137505.html这是我的测试:
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">×</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