草庐IT

javascript - Ajax 驱动的 JavaScript 运行时断言框架

在使用越来越多的JavaScript代码开发更大的Web应用程序时,我们就如何提高代码质量进行了头脑Stormsession。第一个想法是引入单元测试。这将是一个长期目标;但是,这不会解决最常见的回归原因:不断变化的DOM和浏览器特定问题。单元测试在模拟的、无DOM的环境中运行,并且不在页面上。我正在寻找的是一个断言框架,它可以像这样插入到代码中:var$div=$("div.fooBarClass");assertNotEmpty($div);$div.fooBarAction();我发现断言框架可以做到这一点,但它们要么登录到控制台或DOM,要么打开一个愚蠢的弹出窗口。这些都不能与

javascript - Protractor 中的 untrackOutstandingTimeouts 设置是什么?

在Protractor引用配置中,有untrackOutstandingTimeoutssetting提到://Protractorwilltrackoutstanding$timeoutsbydefault,andreportthemin//theerrormessageifProtractorfailstosynchronizewithAngularintime.//InordertodothisProtractorneedstodecorate$timeout.//CAUTION:Ifyourappdecorates$timeout,youmustturnonthisflag.T

javascript - 与上下文无关的 JavaScript 测试框架

我正在寻找一个可以在任何上下文中轻松使用的JavaScript测试框架,无论是浏览器、控制台、XUL等。是否有这样的框架,或者是否有一种方法可以轻松改造现有框架,使其与上下文无关?编辑:测试框架应该不绑定(bind)到任何其他框架,例如jQuery或Prototype.js,并且不应该依赖于存在的DOM(或文档对象)。我正在寻找可以测试纯JavaScript的东西。 最佳答案 好的,这是我刚刚根据一些早期工作酿造的东西。我希望这能满足您的需求。jsUnity轻量级通用JavaScript测试框架jsUnityisalightweig

javascript - 单元错误 : assertion outside test context

我已经搜索过了,看来这个错误是由于没有正确使用asyncTest造成的。但是,根据文档,我似乎做对了。我猜我在某处遗漏了一个小细节,需要一双额外的眼睛……我正在尝试测试一些代码,这些代码发出ajax请求以获取页面,然后将其加载到灯箱中。lightbox-content在ajax调用完成并可以显示之前不会显示在DOM中。因此,我只能在我的onComplete回调中检查它,这是我进行测试以查看它是否正确加载的地方。这是我的代码:asyncTest('mytest',1,function(){utils.lightbox.show('/login',{onComplete:function(

javascript - Angular Testing : Spy a function that was executed on the initialize of a controller

我一直在尝试监视在Controller初始化时执行的函数,但测试总是失败。我一直在尝试执行$scope.$digest()但它不起作用,但是在控制台中,我看到该函数已被调用。我想不通,有人可以向我解释为什么它不起作用吗?代码笔示例:http://codepen.io/gpincheiraa/pen/KzZNbyControllerfunctionController($stateParams,$scope){$scope.requestAuthorization=requestAuthorization;if($stateParams.requestAuthorization===tr

javascript - 为什么/^(.+)+Q$/.test ("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") 需要这么长时间?

当我运行时/^(.+)+Q$/.test("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")在Chrome或IE中,大约需要10秒才能完成。(Firefox几乎可以立即对其进行评估。)为什么要这么久?(Firefox为何/如何能够如此快速地做到这一点?)(当然,我从来没有运行过这个特定的正则表达式,但我在http://daringfireball.net/2010/07/improved_regex_for_matching_urls的URL正则表达式中遇到了类似的问题,它似乎归结为这个,即有某些URL会导致浏览器锁定)例如:varre=/\b((?:https?:\/

javascript - WebDriver:更改事件未触发

我有一个使用KnockoutJS的应用程序,我正在尝试编写一些测试表单的测试。如果您不了解KnockoutJS,简而言之,它提供了从我的View到我的数据模型的绑定(bind)。这意味着当我在输入字段中键入一个值时,我的基础对象会自动更新为该输入字段值。默认情况下,这是通过更改事件完成的。我遇到的问题是,当我的WebDriver测试在字段中输入时,更改事件没有触发,因此我的基础数据模型没有适当的值。这会导致我的表单验证在本不应失败的情况下失败。为了完成这项工作,我已尽我所能在互联网上找到。我有:发送tab键点击离开表单域发送JavaScript代码以触发焦点和模糊事件(验证发生在模糊时

javascript - 如何在 Angularjs Protractor 中使用全局函数?

我有大约20个规范文件,其中大部分使用在每个文件中重复的相同功能。我可以将全局函数放在每个spec文件都可以使用的conf.js文件中吗?我阅读了此页面http://stackoverflow.com/questions/21320400/protractor-angularjs-global-variables,但它不是很有帮助,我无法让它工作。我尝试在onPrepare中放置一个函数,但规范文件找不到它。我也试过global.viewByAds=function(){...};如果有人能帮助我,我将不胜感激! 最佳答案 你可以简

javascript - 从 ElementFinder 数组创建 ElementArrayFinder

这是Takeelementswhileaconditionevaluatestotrue(extendingElementArrayFinder)的后续问题特别是主题和@cvakiitho的回答。问题:执行以下代码后:vari=0;varel=element.all(by.css('ullia'));vartableItems=[];(functionloop(){el.get(i).getText().then(function(text){if(text){tableItems.push(el.get(i));i+=1;loop();}});}());tableItems将包含一组

javascript - Babel [karma-babel-preprocessor] 不为 Karma 测试转换 ES6->ES5

我们已经安装了karma,它使用mocha和chai进行测试。我们正在尝试使用karma-babel-preprocessor将babel直接集成到karma中,以将我们的ES6文件转换为ES5以运行。单独使用mocha与babel一起工作,即mocha测试命令,但我们尝试使用karma而不是它不起作用。karma.conf.js片段:frameworks:['mocha','chai'],//preprocessmatchingfilesbeforeservingthemtothebrowser//availablepreprocessors:https://npmjs.org/br