草庐IT

Mock测试

全部标签

javascript - 如何对页面导航进行单元测试?

用例是这样的:我想对页面中运行的代码进行单元测试(在浏览器、QUnit或类似的东西中)。页面可以做的事情之一是导航到另一个页面。我无法捕捉到这个事件,因为:beforeunload无法停止操作(因此第一个导航离开破坏了我的测试)尝试使用返回旧值的getter重新定义window.location或window.location.href并禁止监视setter我知道出于安全原因不允许停止导航,但对于开发而言,能够这样做确实很有用。有没有可能这样做(我无法直接控制测试运行器,所以我不能只在iframe中加载代码并让它导航然后检查iframe的位置)?编辑:更具体一点:我想测试,是否基于来自

javascript - Node.js - 为什么在使用 mocha 和 zombie 进行测试时会出现泄漏?

我试图让zombie与mocha一起工作,但除非我使用mocha--ignore-leaks命令选项,否则我的测试总是失败并显示错误:Error:globalleaksdetected:k,i,name,chars,char我的测试看起来与该线程中解释的完全一样:MochaandZombieJS我希望我可以在那里发布我的问题,但是作为一个新手,我不能对线程发表评论,只能提出一个新问题。你知道我为什么会出现这些泄漏吗?我正在使用mocha1.0.3和zombie1.0.0。 最佳答案 泄漏可能来自您自己的代码或您使用的node_mod

javascript - Three.js 禁用深度测试

我使用EffectComposer:renderer=newTHREE.WebGLRenderer();renderer.setDepthTest(false);...composer=newTHREE.EffectComposer(renderer);所以我想禁用深度测试,但是当我这样做时:composer.render();vargl=renderer.context;alert(gl.getParameter(gl.DEPTH_TEST));该值为true而不是false。如何禁用深度测试?谢谢。 最佳答案 我意识到这是三年后

javascript - 从 ERB 切换到 Angular 时,Rails 应用程序中的 AngularJS View 功能测试中断

首先,我有一个工作rails“显示”页面显示项目名称和属于该项目的条目。当使用Angular$scope显示项目名称并使用ERB中的block显示条目时,我的测试通过了。当我用AngularDirective(指令)“ng-repeat”替换条目ERB代码时,仅我的条目测试场景开始失败。有趣的是,该应用程序仍在浏览器中运行。请记住,在我看来,另一个$scope变量过去和现在仍然通过使用几乎相同的测试。工作show.html.erb(在ERB中查看的条目):Thisis{{project.details.name}}Entries打破show.html.erb(在Angular中查看的条

javascript - 我如何在 Capybara 中测试页面是否*未*重新加载(JavaScript onClick 拦截有效)?

我正在使用Capybara、Cucumber和Poltergeist。我正在测试附加到表单提交按钮的JavaScript函数,该函数旨在捕获提交事件并阻止它(在后台执行AJAX请求)。使用和不使用AJAX,页面最终看起来都一样,但AJAX方法要快得多,并且不会中断浏览体验等。我可以做些什么来测试表单确实没有提交,并且更改是动态AJAX调用而不是重新加载的结果? 最佳答案 @jules答案的修改版本:describe"Mypage",:jsdoit"reloadswhenitshould"dovisit"/"expect_page_t

javascript - Protractor E2E测试错误: Object [object Object] has no method 'getWindowHandle'

我正在尝试检查点击按钮打开facebook登录的弹出窗口。Error:Object[objectObject]hasnomethod'getWindowHandle'.代码片段生成错误:describe('Tests',function(){varptor;varhandlePromise;varutil=require('util');beforeEach(function(){ptor=protractor.getInstance();handlePromise=ptor.getAllWindowHandles();varhandlesDone=false;ptor.get('/S

javascript - Karma/Jasmine 测试自定义指令 Controller

我正在尝试使用Karma+Jasmine测试AngularJS自定义指令。我找到了一种方法来检查网络上的许多引用资料。但解决方案似乎不是正确的方法。让我们先看一个例子,这是test.js:angular.module("app",[]).directive("test",function(){return{restrict:'E',scope:{defined:'='},templateFile:"test.html",controller:function($scope){$scope.isDefined=function(){return$scope.defined;};}};})

javascript - 使用 $httpBackend、jasmine 测试 $http 请求中特定 header 的 Angular 项目服务

我想检查请求中是否存在特定header。这篇文章帮助我找到了标题。http://jbavari.github.io/blog/2014/06/20/testing-interceptor-headers-in-angularjs/以下是我测试的片段。这让我可以访问header,但问题是(将会),当我刷新请求时,它期望header作为一个函数,这隐含地使我的测试失败。$httpBackend.expect('POST','https://www.someurl.com/login',userObj,function(headers){expect(headers['content-typ

javascript - 使用依赖注入(inject)和 `done` 编写 Karma + Mocha 测试?

在既有依赖注入(inject)又完成的mocha中编写Karma单元测试的最优雅的方法是什么?依赖注入(inject):describe('cows',function(){it('fartsalot',inject(function(cow){//dostuff}))})完成:describe('cows',function(){it('fartsalot',function(done){//dostuff})})如果我想在我的单元测试中同时使用cow和done怎么办?现在,这就是我正在做的,但并不令人满意。beforeEach(inject(function(cow){this.c

javascript - 测试选项卡导航顺序

在我们的一项测试中,我们需要确保以正确的顺序执行表单内的选项卡键盘导航。问题:传统的用Protractor检查tab导航顺序的方法是什么?目前我们正在通过对表单中存在的尽可能多的输入字段重复以下步骤来解决此问题(代码如下):检查当前聚焦元素的ID(使用getId())将TAB键发送到当前获得焦点的元素这是规范示例:it("shouldnavigatewithtabcorrectly",function(){varregCodePage=newRegCodePage();browser.wait(protractor.ExpectedConditions.visibilityOf(reg