使用依赖注入和“完成”编写 Karma + Mocha 测试?

2024-04-01

在 mocha 中编写 Karma 单元测试最优雅的方法是什么,它既具有依赖注入又具有done?

依赖注入:

describe('cows', function(){
  it('farts a lot', inject(function(cow){
    // do stuff
  }))
})

Done:

describe('cows', function(){
  it('farts a lot', function(done){
    // do stuff
  })
})

如果我两者都想要怎么办cow and done在我的单元测试中可用吗?现在,这就是我正在做的事情,但并不令人满意。

beforeEach(inject(function(cow){
  this.cow = cow;
}))

it('farts a lot', function(done){
  this.cow // etc
})

您可以嵌套函数inject进入测试功能

it("should nested inject function into test function", function(done) {
    inject(function($timeout) {

      $timeout(function() {
        expect(true).toBeTruthy();
        done();
      }, 10);

      $timeout.flush(10);

    });    
  });

inject是定义在的全局函数ngMock https://docs.angularjs.org/api/ngMock/function/angular.mock.inject模块,可以在测试中的任何地方使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用依赖注入和“完成”编写 Karma + Mocha 测试? 的相关文章

随机推荐

  • T-SQL - 跟踪一段时间内的发生情况

    我有一些数据ValidFrom and ValidTo与其相关的日期 简单来说 MembershipId ValidFromDate ValidToDate 0001 1997 01 01 2006 05 09 0002 1997 01 0
  • AngularJS如何动态地将列表拆分为多列

    我有许多 li 项目 我希望它们均匀分布在 3 个不同的列中 所以我需要列表项的前三分之一显示在第一个 ul 中 接下来的三分之一显示在第二个 ul 中 等等 正确知道我的方法有点静态 ul class small 12 medium 4
  • 使用 Excel 宏传递变量以完成句子

    我是 Excel 宏的新手 如果我问了什么愚蠢的问题 请纠正我 我想在 Excel 工作表中打印以下 CALL 语句 其中 SCHEMA NAME PROCEDURE NAME INPUT DATE EXIT DATE 将被参数化 并且我想
  • 将附加文件添加到 VSTS 发布到 azure web 应用程序

    我在 VSTS 中有一个版本可以将我的 web 应用程序部署到 azure 应用程序服务 为此 我使用 Azure 应用服务部署步骤 在正常部署 web 应用程序后 我想从另一个构建结果中添加额外的 zip 工件 我只想将这些文件复制到 a
  • 将 HTML5 画布转换为 SVG 的方法?

    我需要将 HTML5 画布转换为 SVG 进行编辑 我怎样才能实现这个目标 Try canvas2svg js https github com gliffy canvas2svg Demo http gliffy github io ca
  • RStudio Shiny 动态选择

    在我的 RStudio Shiny 中 我得到了我的selectInput在我里面server R 以及关于ui R我有一个tags语句来更改选择框的宽度和高度 它在页面加载时起作用 但当我进入单一类型时它会恢复为默认大小 有什么想法如何解
  • 您正在使用 X509TrustManager 的不安全实现

    我在 Google Play 中有一个应用程序 今天我收到一封来自 Google 的邮件 内容如下 Google Play 警告 您正在使用不安全的实现 X509信任管理器 它介绍了有关 SSL 证书问题以及解决该问题的方法 我是出于好奇才
  • Swift - 使用 CGContext 用手指绘图

    我正在尝试制作一个绘图应用程序 我有一个自定义 UIView class DrawView UIView var touch UITouch var lastPoint CGPoint var currentPoint CGPoint ov
  • Phonegap 代码作为 Web 应用程序

    我正在考虑重新使用我的phonegap html css 和js 代码作为网络应用程序 我将仔细检查并删除所有仅限移动设备的功能 目的是拥有一个提供一些移动应用程序功能的网络应用程序 我目前使用的移动设备功能很少 但我猜维护我的移动应用程序
  • 配置vscode json格式空间

    我想配置 vscode 以使用 2 个缩进空间 而不是默认情况下的 4 个缩进空间 来格式化我的 JSON 对象 我怎样才能做到这一点 将以下行粘贴到 VSCode 中的 settings json 中 然后就完成了 json editor
  • 使用 Xpath 比较属性值

    给定以下文档结构 我如何使用 Xpath 检查两个属性值是否匹配
  • 类型错误:无法 pickle _thread.lock 对象

    尝试使用共享队列同时运行两个不同的函数并收到错误 如何使用共享队列同时运行两个函数 这是 Windows 7 上的 Python 版本 3 6 from multiprocessing import Process from queue i
  • (播放 2.4)特征中的依赖注入?

    在play 2 4中 是否可以在trait中使用依赖注入 有例子吗 Thanks 我在这里谈论 Guice 的运行时 DI 因为它是 Play 使用的默认方法 其他 DI 方法或框架可能有所不同 不可能将依赖项注入到特征中 因为特征不可实例
  • 查看 sp_execute 正在做什么

    在我的 MS SQL Profiler 中 我看到很多这样的小查询 执行 sp execute 1 p0 15954 我知道从理论上讲这是可行的 这是执行先前创建的查询并传入特定参数 但问题是我不确定是什么原因导致这些查询 有没有办法查看这
  • 如何避免使用 KITKAT 4.4.2 版本的 SD 卡上出现“EACCES 权限被拒绝”的情况。谷歌的新政策

    android kitkat 4 4 2 版本是针对 writeaccess 实现的新的 google 策略 到目前为止我还不明白 我在其他应用程序中读到了很多有关此问题的信息 他们收到 EACCES 权限被拒绝 的消息 我的应用程序需要写
  • Proxifier 是如何工作的?

    如你所知Proxifier是一个程序 允许不支持通过代理服务器工作的网络应用程序通过 HTTPS 或 SOCKS 进行操作 它可以处理来自正在运行的应用程序的任何传输 我想知道它是如何做到这一点以及我如何写一个这样的 FreeCap htt
  • d3.按属性值选择

    我是 d3 的新手 我有这样的定义 node node enter append circle attr id function d return d id attr class node on mouseover mouseover no
  • java.util.Date(int,int,int) 已弃用 [重复]

    这个问题在这里已经有答案了 构造函数java util Date int int int 已弃用 有没有像Java一样简单设置日期的方法 执行此操作的未弃用方法是什么 Date date new Date 2015 3 2 执行此操作的未弃
  • 在应用程序启动时以模态方式呈现视图控制器

    我的应用程序有一个设置屏幕 如果满足某些条件 该屏幕应以模态方式呈现在根视图控制器上 我已经在 SO 和互联网上四处查看 到目前为止 关于如何执行此操作的最接近的答案在这里 AppDelegate rootViewController 和
  • 使用依赖注入和“完成”编写 Karma + Mocha 测试?

    在 mocha 中编写 Karma 单元测试最优雅的方法是什么 它既具有依赖注入又具有done 依赖注入 describe cows function it farts a lot inject function cow do stuff