草庐IT

run-jasmine

全部标签

javascript - Jasmine spy callThrough 和 callFake

我有一个场景,我想在调用回调后在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();})

javascript - jasmine.matchersUtil.equals 与 ===

我们开发了一组相当大的自定义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

javascript - Jasmine :检查数组是否包含具有给定属性的元素

我正在使用Karma/Jasmine来测试给定的类。我需要测试数组是否包含具有给定属性的对象,即我不想指定整个对象(它相当大,如果必须的话,测试将变得难以维护)。我试过以下方法:expect(filters.available).toContain(jasmine.objectContaining({name:"majors"});但这给了我错误'jasmine'isnotdefined,我一直没能找出错误的原因。 最佳答案 在jasmine2.0中实现它的一种方法是使用自定义匹配器。我还使用lodash遍历数组和每个数组项内的对象

javascript - Jasmine 2.0 如何在运行期望之前等待实时

我正在尝试测试postMessageAPI,因为在接收消息之前有轻微的延迟,我无法在发送消息后立即运行预期。在jasmine1.3中,我曾经在运行期望之前等待()几毫秒并且工作正常。然而,Jasmine2.0wait()已被弃用,现在看来setTimeout中的所有内容都不会运行,除非调用done()..不确定这一切是否都有意义,如果是的话,我希望得到一些关于如何解决这个问题的建议。谢谢! 最佳答案 这对我有用:beforeAll(function(done){setTimeout(done,5000);});beforeAll函数

javascript - 在 PhantomJS 中使用 Jasmine 测试 $interval

看来我的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

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

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

javascript - 为什么 Jasmine 被称为 "BDD"测试框架,即使不支持 "Given/When/Then"?

在介绍Jasmine,它说:Jasmineisabehavior-drivendevelopmentframeworkfortestingJavaScriptcode.我阅读了BDD的几篇文章,似乎我们应该使用“Given/When/Then”来定义“Scenario”,这就是“cucumber”所做的。但是在Jasmine中,我看不到任何这样的方法。即使Jasmine没有这样的概念,我们还能称其为“BDD”测试框架吗? 最佳答案 Jasmine不会阻止您使用given-when-then,下面的示例显示了在使用Jasmine时可以

解读YOLOV5的runs文件

使用YOLOV5训练数据之后我们需要一些评判标准来告诉我们所训练的效果究竟如何。这时,YOLOV5给出了一个文件解决我们的问题。该文件在直接生成为runs文件,可理解记录一些运行时的日志信息。confusion_matrix.png(混淆矩阵)作为一种特定的二维矩阵,列代表预测的类别,行代表实际的类别。其对角线上的值表示预测正确的数量比例,非对角线元素则是预测错误的部分。混淆矩阵的对角线值越高越好,这表明许多预测是正确的。上图是对是否戴口罩进行训练,有图可以看出将一个图片分为了三个部分,分别是戴口罩,不戴口罩和backgroundFP。该图在每列上进行归一化处理。则可以看出戴口罩预测正确的概率

javascript - 试图理解 Jasmine 的 toHaveBeenCalled() 匹配器

我是jasmine的新手,这是我的src文件,我在其中创建了Auth类functionAuth(){}Auth.prototype.isEmpty=function(str){return(!str||0===str.length);}Auth.prototype.Login=function(username,password){if(this.isEmpty(username)||this.isEmpty(password)){return"UsernameorPasswordcann'tbeblank";}else{return"LoggedIn!";}}现在我想测试jasmin

javascript - 有没有办法用 Jasmine 验证 spy 执行的顺序?

我有两个对象已被Jasmine设置为spy:spyOn(obj,'spy1');spyOn(obj,'spy2');我需要验证对spy1的调用先于对spy2的调用。我可以检查它们是否都被调用:expect(obj.spy1).toHaveBeenCalled();expect(obj.spy2).toHaveBeenCalled();但是即使首先调用了obj.spy2()也会通过。有没有一种简单的方法可以验证一个在另一个之前被调用? 最佳答案 看起来Jasmine的人看到了这个帖子或其他人喜欢它,因为thisfunctionalit