草庐IT

unit-testing

全部标签

javascript - 测试 Jasmine 中是否触发了事件

在没有jquery-jasmine的情况下,如何测试Jasmine中是否触发了事件?我正在做一个不使用jQuery的项目(wohoo),我正在尝试为我的菜单触发功能编写一个单元测试。它是这样工作的:你点击一个按钮我的可测试组件然后运行​​document.dispatchEvent(newCustomEvent('menu.toggle'))我想测试组件是否确实发送了自定义事件。我该如何测试? 最佳答案 尝试了一下,找到了一个行之有效的解决方案:importtriggerEventfrom'trigger-event';import

javascript - 使用特定的 keyCode 测试 Jasmine 中的按键事件

我正在为触发事件的AngularJS指令编写测试当某些键被按下时。根据我的手动测试,一切正常。我想成为一名优秀的人,也想拥有一个完整的单元测试套件,但我遇到了一个我自己无法解决的问题:我想发送一个具体的keyCode在我的triggerHandler()在我的测试中调用,但我找不到一种方法来指定实际有效的键。我知道很多关于使用特定数据构建和发送事件的主题的问题和答案,但它们都不适用于我的设置:我的设置Karma测试运行器运行测试的PhantomJS浏览器(但也尝试过Firefox和Chrome但没有成功)我没有使用jQuery,我希望有一个常规的JS解决方案。一定有!测试代码varev

javascript - 用 Jest 模拟 ES6 类函数

我有一个问题,关于如何使用Jest模拟ES6类实例,我实际想要测试的方法使用了它。我的真实案例是尝试测试一个Redux异步Action创建者,它发出请求并根据请求结果分派(dispatch)一些Action。这是用例的简化示例://communication.js//AnexportedES6classmodulewithproxytotherequestlibrary.importpostfrom'./post';exportdefaultclasscommunication{getData(data,success,error){constres=post(data);if(res

javascript - 使用页面重新加载和 iframe 对 JS 应用程序进行单元测试

我有一个页面重新加载/导航和iframe至关重要的应用程序,这些部分似乎很难用单元测试覆盖。我希望能够写smt。像这样:it('shouldfireappropriatecallbacksonstartandpagereload',function(){app.start();expect(app.onStart).toHaveBeenCalled();page.reload();expect(app.onRestart).toHaveBeenCalled();}it('shouldknowwhetheritrunsiniframeornot',function(){expect(ap

javascript - 为什么这个 Sinon 模拟有一个不是函数的模拟方法?

我想在我的coffeescript单元测试中使用测试替身来帮助分离关注点。我正在将sinon与mocha结合使用(在带有konacha的Rails应用程序的上下文中。)我正在尝试在这一点上似乎直接来自thedocumentation的东西,其中有这个模拟用法的例子:varmyAPI={method:function(){}};varspy=sinon.spy();varmock=sinon.mock(myAPI);mock.expects("method").once().throws();PubSub.subscribe("message",myAPI.method);PubSub.

javascript - 如何在单元测试中将商店注入(inject) Ember.Service?

在我的应用程序中,我有这个初始化程序,它将商店注入(inject)所有服务:exportfunctioninitialize(container,application){application.inject('service','store','store:main');}exportdefault{name:'inject-store-in-services',initialize:initialize};我的问题是,当我运行单元测试时,服务没有store属性。所以我的问题是:有没有办法在单元测试上下文中实现我的初始化程序的功能? 最佳答案

Javascript 单元测试 - DOM 操作

我对Javacript单元测试还很陌生。一件事一直困扰着我。在测试javascript时,我们经常需要进行DOM操作。看起来我正在对Controller/组件中的方法/函数进行单元测试,但我仍然需要依赖模板中的HTML元素。一旦更改了id(或在我的测试用例中用作选择器的属性),我的测试用例也需要更改!这不会违反单元测试的目的吗? 最佳答案 javascript单元测试中最困难的部分之一不是测试,而是学习如何构建代码以使其可测试。您需要通过明确分离可测试逻辑和DOM操作来构建代码。我的经验法则是:如果您正在测试任何依赖于DOM结构的东

javascript - 在单元测试期间无法模拟 admin.firestore()

我正在阅读howtomockgooglecloudfunctionsforfirebase并有正确模拟以下代码的问题:constadmin=require('firebase-admin');admin.initializeApp(functions.config().firebase);vardb=admin.firestore();链接中的示例使用以下代码模拟initializeApp确实有效admin=require('firebase-admin');adminInitStub=sinon.stub(admin,'initializeApp');现在admin.firestor

javascript - 抛出错误但 Jest 的 `toThrow()` 没有捕获错误

这是我的错误代码:FAILbuild/__test__/FuncOps.CheckFunctionExistenceByString.test.js●expect(CheckFunctionExistenceByStr('anystring','FunctionThatDoesNotExistsInString')).toThrow();FunctionFunctionThatDoesNotExistsInStringdoesnotexistsinstring.atCheckFunctionExistenceByStr(build/FuncOps.js:35:15)atObject.(

javascript - 使用 Qunit 断言函数抛出异常

我是Qunit和单元测试的新手。我正在尝试找出测试以下功能的内容和方法。目前它并没有做太多事情,但我想断言,如果我传递给它不正确的值,就会抛出错误:functionattrToggle(panel,attr){'usestrict';if(!panel){thrownewError('Panelisnotdefined');}if(!attr){thrownewError('Attrisnotdefined');}if(typeofpanel!=='string'){thrownewError('Panelisnotastring');}if(typeofattr!=='string'