我正在尝试使用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
我有一个场景,我想在调用回调后在beforeEach上调用done()。我尝试按如下方式执行此操作:spyOn(scope,'onAdmin').and.callThrough().and.callFake(function(){done()})但我不确定我的行为是否正确。基本上我想要实现的是能够在每个回调完成它所做的事情后调用done()。更新:解决方案scope.onAdminBackup=scope.onAdmin;spyOn(scope,'onAdmin').and.callFake(function(admin){scope.onAdminBackup();done();})
我们开发了一组相当大的自定义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
我有一个简单的测试套件,其中有一个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
我正在使用Karma/Jasmine来测试给定的类。我需要测试数组是否包含具有给定属性的对象,即我不想指定整个对象(它相当大,如果必须的话,测试将变得难以维护)。我试过以下方法:expect(filters.available).toContain(jasmine.objectContaining({name:"majors"});但这给了我错误'jasmine'isnotdefined,我一直没能找出错误的原因。 最佳答案 在jasmine2.0中实现它的一种方法是使用自定义匹配器。我还使用lodash遍历数组和每个数组项内的对象
我正在尝试测试postMessageAPI,因为在接收消息之前有轻微的延迟,我无法在发送消息后立即运行预期。在jasmine1.3中,我曾经在运行期望之前等待()几毫秒并且工作正常。然而,Jasmine2.0wait()已被弃用,现在看来setTimeout中的所有内容都不会运行,除非调用done()..不确定这一切是否都有意义,如果是的话,我希望得到一些关于如何解决这个问题的建议。谢谢! 最佳答案 这对我有用:beforeAll(function(done){setTimeout(done,5000);});beforeAll函数
看来我的interval从未被触发。我有一个包含$interval的指令,我想测试它。我删除了所有与指令相关的代码,并在其Controller中添加了以下代码:window.called=0;window.interval=$interval(function(){window.called++;console.log('interval'+window.called);//4},10);console.log('initialized');//1测试看起来像这样:describe('myDirective',function(){beforeEach(module('myModule
我需要找到以下元素进行测试:Zugangsdateneingeben我怎样才能找到这个元素来检查可见性(ng-show)?ng-show属性和值是唯一标识元素的唯一属性和值。该类在许多元素中使用...我正在寻找类似的东西:varnotValid=element(by.Attribute('ng-show','notValid'); 最佳答案 你可以找到它by.css():element(by.css('div[ng-show=notValid]'));$('div[ng-show=notValid]');//shortcutfort
我正在使用karma和jasmine进行我的一个小项目。我的目标浏览器是chrome32。我正在尝试在我通过blob实例化的webworker中导入脚本,如下所示:describeAsyncAppliPersephone("WhentheapplicationprojecttoDOM",function(){it("itshouldcallthefunctionofDomProjectionintheprojectassociatedwithitsevent",function(){vareventSentBack={eventType:'testReceived',headers:{
我有一个1秒的jQuery.animateAction,它在页面加载后5秒启动。我在我的Jasmine单元测试代码中设置了一个Sinon计时器,并在7秒后进行测试,以查看后动画属性是否符合预期。它不能正常工作,所以我在我的JasmineHTML测试页面上放置了一个动画实例,以便更好地查看发生了什么。在Firefox和Chrome中,页面加载,动画函数被调用,单元测试立即失败,然后(也是立即)动画可见。在IE、Opera和Safari中,页面加载,动画函数被调用,单元测试立即失败,动画永远不会出现。我希望的是以下内容(在所有浏览器中):页面加载,调用动画函数,动画瞬间完成,单元测试立即成