草庐IT

javascript - 使用 Mocha 和 Chai-as-Promised 测试被拒绝 promise 的特定属性

我正在尝试使用Chai-as-Promised测试被拒绝的Promise的细节,Mocha,和“应该”方言。promise由bluebird实现.这很好用:it('itshouldberejectedwhengivenbadcredentials',function(){varpromiseOfUsers=db.auth("bad","credentials").getUsers();returnpromiseOfUsers.should.eventually.be.rejectedWith(Error)});该错误有一个“状态”属性。我想断言状态是401这不起作用:it('itsho

javascript - 为什么连续调用 `pattern.test(name)` 结果相反

这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭7年前。为什么这段代码先返回true,然后返回falsevarpattern=newRegExp("mstea",'gi'),name="AmandaOlmstead";console.log('1',pattern.test(name));console.log('1',pattern.test(name));演示:Fiddle

javascript - 如何使用 Protractor 双击元素?

我想双击一个元素,但在文档API中找不到执行此操作的方法。我找到了一些可以追溯到2013年的引用文献,但我知道情况发生了很大变化。谁能帮忙告诉我如何执行双击。谢谢 最佳答案 永远记住protractor是webdriverjs的包装器.doubleClick()在browser.actions()中可用:browser.actions().doubleClick(element(by.id('mybutton'))).perform(); 关于javascript-如何使用Protrac

javascript - 期望数组中的项目

我的一个测试期望错误消息文本是多个值之一。自getText()返回promise我不能使用toContain()Jasmine匹配器。自protractor以来,以下内容将不起作用(jasminewd底层)不会解决匹配器第二部分中的promise,toContain()在这种情况下:expect(["UnknownError","ConnectionError"]).toContain(page.errorMessage.getText());问题:有没有办法用jasmine+protractor检查一个元素是否在一个数组中,其中一个元素是一个promise?换句话说,我正在寻找toC

Javascript 正则表达式.test() "Uncaught TypeError: undefined is not a function"

只是尝试通过.test()函数使用javascript的正则表达式功能。varnameRegex='/^[a-zA-Z0-9_]{6,20}$/';if(nameRegex.test($('#username').val())){...}错误在这一行if(nameRegex.test($('#username').val())){调试器在那里中断并说“UncaughtTypeError:undefinedisnotafunction”。好像.test()没有定义?不应该吗? 最佳答案 就目前而言,nameRegex不是正则表达式而是

javascript - Jest 在第一次失败后停止测试套件

我正在使用Jest用于测试。我想要的是在当前测试套件中的测试失败时停止执行该测试套件。--bailoption这不是我需要的,因为它会在一个测试套件失败后停止其他测试套件。 最佳答案 感谢thiscommentongithub我能够使用自定义testEnvironment解决此问题。为此,jest-circus需要通过npm/yarn安装。值得注意的是jestwillsetjest-circustothedefaultrunnerwithjestv27.首先需要调整jest配置:jest.config.jsmodule.export

javascript - 在 Protractor 中测试模板?

编写适用于网站每个页面的断言的最佳方式是什么?我正在测试我网站的页脚中是否存在某个元素,因此该元素应该存在于所有页面上。我正在考虑编写一个单独的文件来测试网站的模板元素,然后将其包含在所有规范中。不过好像没有其他人在这样做? 最佳答案 首先,为了编写更清晰的测试并更好地了解目标站点的组成,请应用PageObjectpattern并将网页的各个部分拆分为不同的页面对象。例如,footer、header可以而且应该是单独的页面对象,可以在您网站的不同网页中重复使用。关于该主题的更多信息:UsingPageObjectstoOrganiz

javascript - 在 Protractor 中定义页面对象的规范方法

我们一直在使用PageObjectpattern有一会儿。它绝对有助于组织端到端测试,并使测试更具可读性和简洁性。作为UsingPageObjectstoOrganizeTestsProtractor文档页面向我们展示,我们将每个页面对象定义为一个函数,并使用new来“实例化”它:"usestrict";varHeaderPage=function(){this.logo=element(by.css("div.navbar-headerimg"));}module.exports=HeaderPage;用法:"usestrict";varHeaderPage=require("./.

javascript - jasmine.matchersUtil.equals 与 ===

我们开发了一组相当大的自定义jasmine匹配器,有助于使我们的代码更简洁并避免代码重复。我注意到一些自定义jasmine匹配器使用===相等性测试和一些jasmine.matchersUtil.equals。示例:toHaveHandCursor:function(){return{compare:function(actual){return{pass:actual.getCssValue("cursor").then(function(cursor){returncursor==="pointer";})};}};},toBeActive:function(){return{co

javascript - 守夜人 : Better way than `.pause(1000)` to avoid brittle tests?

.pause(1000)真的是等待表单提交的最佳实践吗?我正在寻找一种可靠地提交表单的方法,而无需知道作为表单提交结果出现的页面的详细信息。例子来自homepage使用.pause(1000)等待表单提交,具有讽刺意味的是不再起作用,但是这个带有修改后的css-selector版本的版本可以:module.exports={'DemotestGoogle':function(client){client.url('http://www.google.com').waitForElementVisible('body',1000).assert.title('Google').asser