草庐IT

unit-testing

全部标签

javascript - 可以在单个测试中对方法进行两次 stub 以返回不同的结果吗?

我想重新stubsomeHandler.getStatus,但我收到TypeError:AttemptedtowrapgetStatuswhichalreadywrapped..it('isatest',function(){sandbox.stub(someHandler,'getStatus',function(callback){callback(null,{value:1});});sandbox.stub(someOtherHandler,'doSomething',function(callback){callback(null);});sandbox.stub(someH

javascript - 我如何测试 Jasmine 中的表单提交?

我有一个表单,它在最终发布到它的ACTIONURL之前执行一些大量的Javascript操作。我正在编写一些Jasmine单元测试,并希望确保在提交表单时发生Javascript内容。但是,我绝对不希望页面在我进行单元测试时转到ACTIONURL。我在这里看到了一个似乎不错的建议:http://groups.google.com/group/jasmine-js/browse_thread/thread/a010eced8db17c1a?pli=1...但是,由于我对Jasmine还很陌生,所以我不确定如何实现它,也无法在网上找到任何相关示例。有没有人有我可以查看的示例代码来完成我需要

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 - 使用 angular-mocks/jasmine 测试服务 - TypeError : undefined is not an object

我正在尝试使用jasmine/karma/phantomJS在我的Angular应用程序中测试一个简单的服务。Jasmine版本:2.4.1Angular/Angular模拟:1.5.7phantomJS:2.1.1QueryParameters.service.tests.js:(QueryParameters.service.js是app.service模块的一部分,实际上是一个工厂,而不是服务)describe('myApp.QueryParametersService',function(){varQueryParametersService;beforeEach(module

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

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

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

javascript - 为什么我必须在 beforeEach() 中调用 spyOn?

我有一个简单的测试套件,其中有一个it函数。我想看看我正在调用的函数中是否调用了某个函数,所以我有这样的东西:describe("doStuff",function(){varfoo=newFoo();spyOn(foo,"doOtherStuff");foo.doStuff(true);it("shoulddostuffandotherstuff",function(){expect(foo.stuffDone).toBe(true);expect(foo.doOtherStuff).toHaveBeenCalled();});});但是,这给了我错误:Expectedaspy,bu

javascript - 如何解决单元测试中的异步等待 - javascript

我有一个lambda,我想为其编写单元测试。我正在使用asyncawait但我遇到了resolvepromises的问题。我想测试不同的条件,如何编写测试来解决和停止看到超时?提前致谢。Error:Timeoutof2000msexceeded.Forasynctestsandhooks,ensure"done()"iscalled;ifreturningaPromise,ensureitresolves.---单位describe('tests',function(){describe('describeanerror',()=>{it('shouldreturna500',(don

javascript - 如何对 jquery 插件中的私有(private)方法进行单元测试?

也许这是一个JQuery新手问题,但是:适当的jquery插件写在闭包中因此只能从外部访问定义插件接口(interface)的方法有时(或多次)人们可能需要辅助方法,但将这些方法作为插件接口(interface)的一部分公开是没有意义的(例如,因为它们会改变内部状态)。如何对这些进行单元测试?例如,查看blockUI插件,方法安装、删除、重置如何进行单元测试?为了画一个平行线,在Java中我会:创建一个仅包含公共(public)方法的BlockUI接口(interface)(根据定义)创建一个实现上述接口(interface)的BlockUIImpl类。此类将包含install()、r

javascript - 如何在 Jasmine 单元测试中使用 Sinon 模拟 jQuery 动画?

我有一个1秒的jQuery.animateAction,它在页面加载后5秒启动。我在我的Jasmine单元测试代码中设置了一个Sinon计时器,并在7秒后进行测试,以查看后动画属性是否符合预期。它不能正常工作,所以我在我的JasmineHTML测试页面上放置了一个动画实例,以便更好地查看发生了什么。在Firefox和Chrome中,页面加载,动画函数被调用,单元测试立即失败,然后(也是立即)动画可见。在IE、Opera和Safari中,页面加载,动画函数被调用,单元测试立即失败,动画永远不会出现。我希望的是以下内容(在所有浏览器中):页面加载,调用动画函数,动画瞬间完成,单元测试立即成