草庐IT

javascript - 多个浏览器和页面对象模式

我们正在使用页面对象模式来组织我们内部的AngularJS应用程序测试。这是我们拥有的示例页面对象:varLoginPage=function(){this.username=element(by.id("username"));this.password=element(by.id("password"));this.loginButton=element(by.id("submit"));}module.exports=LoginPage;在单浏览器测试中,很清楚如何使用它:varLoginPage=require("./../po/login.po.js");describe("

javascript - Protractor/WebDriverJS 中被拒绝的 promise

WebDriverJS和Protractor本身完全基于promises的概念:WebDriverJS(andthus,Protractor)APIsareentirelyasynchronous.Allfunctionsreturnpromises.WebDriverJSmaintainsaqueueofpendingpromises,calledthecontrolflow,tokeepexecutionorganized.并且,根据definition:Apromiseisanobjectthatrepresentsavalue,ortheeventualcomputationo

javascript - Protractor :按属性查找元素

我需要找到以下元素进行测试:Zugangsdateneingeben我怎样才能找到这个元素来检查可见性(ng-show)?ng-show属性和值是唯一标识元素的唯一属性和值。该类在许多元素中使用...我正在寻找类似的东西:varnotValid=element(by.Attribute('ng-show','notValid'); 最佳答案 你可以找到它by.css():element(by.css('div[ng-show=notValid]'));$('div[ng-show=notValid]');//shortcutfort

javascript - 测试 angularjs ui-router go() 方法

我有一个Controller,它从$scope获取一个值并将它发送到不同的状态:controllers.controller('SearchController',['$scope','$state','$stateParams',function($scope,$state,$stateParams){$scope.search=function(){$stateParams.query=$scope.keyword;$state.go('search',$stateParams);};}]);我不确定如何对这种搜索方法进行单元测试。我如何验证go方法是否已被调用或执行某种when(

javascript - 如何在 e2e AngularJS 测试中上传文件?

在我的一个View中,我有一个文件上传控件。它支持通过拖放或单击按钮后打开的标准文件对话框上传文件。如何在我的端到端测试中做到这一点1?1两个选项中的一个就够了 最佳答案 您可以使用Javascriptblob上传文件。这需要与旧浏览器不兼容的FileApi(http://caniuse.com/fileapi)。但是既然你提到了使用拖放上传,它使用了FileApi,那么它应该不会太重要。您可以通过两种方式使用blobAPI上传文件。一个非常简单,另一个只是第一个的延续。使用Javascript,您可以创建一个新的blob:varb

javascript - expect() 没有实际期望

问题:最近,在审查我们现有的测试代码库时,我注意到在没有“匹配”部分的情况下使用expect()时出现了一种危险的打字错误:expect(page.filters.fromDateLabel.getText(),"After");我很确定toEqual()应该在这里使用:expect(page.filters.fromDateLabel.getText()).toEqual("After");这个问题是jasmine在这种情况下不会让预期失败(好吧,显然是因为实际上没有任何预期)。这让我们遇到了一个更严重的问题——在测试用例中实际上没有测试任何东西——它在没有期望的情况下通过了。我们对

javascript - 在对象数组上使用 Jest 属性匹配器

我正在尝试使用Jest的新PropertyMatcher特征(自Jest23.0.0起)匹配包含生成字段的对象数组。我尝试使用expect.arrayContaining和expect.objectContaining放置一个普通对象和一个匹配器定义,就像我在手动匹配时可能会做的那样。目前有什么办法可以做到这一点吗?constsportsBallPeople=[{createdAt:newDate(),name:'ThatonefamousguyfromCleveland'},{createdAt:newDate(),name:'Thattallguy'}];expect(sports

javascript - Jest : Testing window. location.reload

如何编写测试以确保方法reloadFn实际上重新加载窗口?我找到了thisresource但是我不清楚在给定函数中发生窗口重新加载时编写测试时如何期望窗口重新加载。感谢您的帮助!constreloadFn=()=>{window.location.reload(true);} 最佳答案 更新答案(2021年11月)包装:“开Jest”:“^26.6.0”"@testing-library/jest-dom":"^5.11.4"构建:create-react-app4describe("testwindowlocation'srelo

javascript - Protractor 如何得到可靠的结果?

我正在使用Protractor(v1.3.1)为我的Angular1.2.26应用程序运行E2E测试。但有时,测试可以,有时则不行。似乎有时检查是在更新显示之前完成的(或类似“同步”问题)。我尝试了很多选择:添加browser.driver.sleep指令,使用browser.executeScript('$.fx.off=true')禁用效果添加browser.waitForAngular()指令没有成功。使用Protractor进行可靠的E2E测试的最佳实践是什么?JM. 最佳答案 每次遇到类似问题时,我都会使用browser.

javascript - 鼠标悬停元素无法使用 Protractor 工作

我有一个生成以下html结构的指令:hovertime!Popovercontent代码运行良好,当您使用浏览器手动将鼠标悬停时,弹出内容会正确显示。我正在尝试使用以下Protractor测试来测试鼠标悬停功能:it('shoulddisplaythepopover-contentonmouseover',function(){browser.get('http://localhost:9000/');browser.actions().mouseMove(element(by.css('.popover')).find()).perform();expect(element(by.c