首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Sinon存根在带有导出类的typescript中不起作用

Sinon是一个JavaScript的测试框架,用于编写单元测试和集成测试。它提供了一组强大的工具和函数,用于模拟和存根函数、对象和模块,以便在测试过程中进行控制和验证。

在带有导出类的TypeScript中,Sinon存根可能不起作用的原因可能是由于以下几个方面:

  1. 导出类的引入方式:确保正确引入导出类。在TypeScript中,可以使用import语句来引入导出的类。例如,如果要存根一个名为MyClass的类,可以使用以下方式引入:
代码语言:txt
复制
import { MyClass } from './path/to/myClass';
  1. 存根的位置:确保在正确的位置进行存根。通常,在测试文件中的beforeEachbefore函数中进行存根设置,以确保在每个测试运行之前进行存根。
  2. 存根的语法:确保使用正确的Sinon函数和语法进行存根。Sinon提供了一些函数,如stubmockspy,用于存根和模拟函数和对象。例如,如果要存根MyClass类的一个方法myMethod,可以使用以下方式:
代码语言:txt
复制
const myClassStub = sinon.stub(MyClass.prototype, 'myMethod');
  1. 类的可测试性:确保导出的类是可测试的。有时,类的设计可能会导致难以进行存根和模拟。在这种情况下,可以考虑重构代码,以使类更具可测试性,例如通过依赖注入等方式。

总结起来,要使Sinon存根在带有导出类的TypeScript中起作用,需要正确引入导出类,将存根设置放置在适当的位置,使用正确的Sinon函数和语法进行存根,并确保类的可测试性。这样可以有效地进行单元测试和集成测试,并验证代码的正确性和可靠性。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Twitter工程师聊JS

Javascript 不是一个单一语言,每个浏览器有自己JS引擎,不同浏览器和版本之间产生了不少差异 兼容性问题比较麻烦,http://caniuse.com 这个网站给出了各个API不同浏览器下支持情况...ES6 是最新JS规范,引入了一些新语法和功能,例如 箭头符、、本地模块、模板字符串 …… http://blog.teamtreehouse.com/get-started-ecmascript...方言 TypeScript 本质上就是JavaScript,带有一套类型系统,因为JS本身无类型,TypeScript变添加了类型,使其更加标准 CoffeeScript 也很接近JavaScript...和 sourcemaps hot reloading 当文件内容变化时,浏览器动态更新文件 sourcemaps 使debug更加容易,使bundle回到原始形式 Grunt、gulp、broccoli...PhantomJS 是一个没有界面的浏览器,常用来配合自动测试 还有一些其他有用测试工具: Selenium 可以浏览器中进行真实集成测试 Sinon 对于AJAX请求类型测试很有帮助

1.4K60

React 学习路线图 2018版

截止至本文发布时,原仓库已经有了中文版,大家可自行选择查阅,由于是 roadmap 聚合列表,所以翻译方面差异不会很大。 学习路线图 ?...·使用 grid 和 flexbox 为页面布局 iii.JS 基础 ·熟悉语法 ·学习 DOM 基础操作 ·学习 JS 经典机制....官方网站上学习 React ,或者看一些教程 4.熟悉一些将会用到工具 i.包管理工具 ·npm ·yarn ·pnpm ii.任务执行工具...Moment ○classnames ○Numeral ○RxJS ○Ramda 12.测试 i.单元测试 ·Jest ·Enzyme ·Sinon...之后就会打开思维导图,修改之后上传后更新 README PNG 图片 (需要导出),然后提交 PR 。 提交 PR 以帮助改进 issues 中进行讨论想法 帮忙宣传

2.4K41

怎样编写更好 JavaScript 代码

使用TypeScript 改进你 JS 代码要做第一件事就是不写 JS。TypeScript(TS)是JS“编译”超集(所有能在 JS 运行东西都能在 TS 运行)。...但对于所有对象(,数组,dicts),const 并不能保证不变性。 箭头函数 => 箭头函数是 JS 声明匿名函数简明方法。匿名函数即描述未明确命名函数。...文字模板(字符串模板) 字符串是最常见编程结构之一。这就是为什么它如此令人尴尬,以至于本地声明字符串许多语言中仍然得不到很好支持原因。很长一段时间里,JS 都处于“糟糕字符串”系列。... JavaScript ,只有绝对必要时才应使用传统 for 循环。...Prettier 不会对使用 var 提出异议,但会自动对齐代码所有括号。开发过程将代码推送到 Git 之前,总是处理得很漂亮。

1.3K30

【译】不是 TypeScript TypeScript -- JSDoc 超能力

TypeScript编译器(tsc)以及 VSCode 等编辑器语言支持无需任何编译步骤,就能提供出色开发体验。下面我们来看看如何使用。...目录 带有JSDoc注释TypeScript 激活检查 内联类型 定义对象 定义函数 导入类型 使用泛型 枚举 typeof 从扩展 带有 JSDoc 注释 TypeScript 最优情况下,...(就像我们 TypeScript 中所做那样)内联作为参数。...这样,您就可以 TypeScript 编写 TypeScript 类型定义,并将它们导入源文件。...特别是输入泛型时,TypeScript 还有一些功能,但是对于很多基本任务,你可以不安装任何编译器情况下获得很多编辑器能力。 知道更多?给我发一条推文。我很高兴在这里添加它们。

3.1K30

RMI原理及实现

RMI,程序所有部分都由Java编写。...我们应当明白是,这个接口并非总是不包括方法代码而只包括方法定义。远程对象包含要导出每个方法定义,它还实现Java.rmi远程接口。 远程对象实现:这是一个实现远程对象。...如果实现了远程对象,就能够覆盖该对象所有方法,因此,远程对象实现将真正包含我们希望导出方法代码。 远程服务器:这是一个作为服务器使用,它是相对于要访问远程方法客户端而言。...它存储着绑定字符串和对象。 远程客户端:这是一个帮助我们访问远程方法提供帮助,它也是最终用户。我们将使用查找和调用远程方法方法该类调用远程方法。...Java,只要一个extends了java.rmi.Remote接口,即可成为存在于服务器端远程对象,供客户端访问并提供一定服务。

82780

提高代码质量——使用Jest和Sinon给已有的代码添加单元测试

现在,我们可以使用单元测试来提高自己代码质量。下面,我将自己使用Jest和Sinon.js配置和编写单元测试收获经验和踩到坑进行总结,根据从零开始配置和编写单元测试这一条线来进行分享。...; 项目中,主要是使用Sinon.js来模拟HTTP请求。...Sinon.js文档,有专门关于XMLHttpRequest对象模拟章节,在下一章,我们将会针对项目中sinon.js使用进行简单介绍。...编写单元测试 本章,我们会针对如何编写单元测试文件进行一个具体讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到Jest和Sinon.jsAPI会进行简单介绍...通过上面三测试,我们基本能够覆盖现有项目中所有代码。 同步函数测试 同步函数测试过程是这几个中最简单一部分,我们可以测试函数返回值,也能够测试传入高阶函数。

3.7K00

资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

它可以“监视”模式下运行,并在修改文件时执行快速增量更新。 没有Python环境依赖 Pyright是用TypeScript编写节点内运行。 它不需要安装Python环境或导入第三方包。...,如 if/else 语句 内置类型存根 Pyright包含来自 Typeshed stdlib类型存根最新副本。...它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

80320

Github项目推荐 | 微软最新开源Python静态类型检查器Pyright

它可以“监视”模式下运行,并在修改文件时执行快速增量更新。 没有Python环境依赖 Pyright是用TypeScript编写节点内运行。 它不需要安装Python环境或导入第三方包。...,如 if/else 语句 内置类型存根 Pyright包含来自 Typeshed stdlib类型存根最新副本。...它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

98920

TypeScript 命名空间与模块区别

一、模块 TypeScript 与 ECMAScript 2015 一样,任何包含顶级 import 或者 export 文件都被当成一个模块 相反地,如果一个文件不带有顶级import或者export...声明,那么它内容被视为全局可见 例如我们在在一个 TypeScript 工程下建立一个文件 1.ts,声明一个变量a,如下: const a = 1 然后另一个文件同样声明一个变量a,这时候会出现错误信息...,export关键字可以导出变量或者类型,用法与es6模块一致,如下: export const a = 1 export type Person = { name: String } 通过import...export class SomeClassName { } } 以上定义了一个命名空间 SomeNameSpaceName,如果我们需要在外部可以调用 SomeNameSpaceName 和接口...但就像其它全局命名空间污染一样,它很难去识别组件之间依赖关系,尤其是大型应用 像命名空间一样,模块可以包含代码和声明。

11110

资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

它可以“监视”模式下运行,并在修改文件时执行快速增量更新。 没有Python环境依赖 Pyright是用TypeScript编写节点内运行。 它不需要安装Python环境或导入第三方包。...,如 if/else 语句 内置类型存根 Pyright包含来自 Typeshed stdlib类型存根最新副本。...它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

82620

“别更新了,学不动了” 之:全栈开发者 2019 应该学些什么?

他们了解前端和后端技术、工具和服务,并结合所有这些技能开发出可以在生产环境运行东西。 这是美国全栈开发者 2019 年工资走势: ? 人生苦短,所以尽量少做无用功。...对于一个真正全栈开发者,你可以 2019 年选择这三个框架任何一个。 来自React 16 更新 你需要了解 React 基础知识及其基于单向数据流架构组件。...新生命周期方法; React 16.6 Suspense for Code Splitting(已发布); 带有 React Hooks 16.x 版本(2019 年第一季度);...带有并发模式 16.x 版本(2019 年第二季度); 带有 Suspense for Data Fetching 16.x 版本(2019 年中)。...但是,Angular 和 Vue 都采用了 TypeScript,并将其作为开发者社区标准,因此,TypeScript 可能会继续增长,并超越上述其他语言。

2.5K30

TypeScript 之父简介:TS Anders Hejlsberg: Introducing TypeScript参考资料TypeScript入门指南(JavaScript超集)

TypeScript 增加了可选类型、和模块 TypeScript 可以编译成可读、标准 JavaScript TypeScript 支持开发大规模 JavaScript 应用,支持所有浏览器,主机和操作系统...非常易学和易于理解 语言特性 接口 模块 类型注解 编译时类型检查 Arrow 函数 (类似 C# Lambda 表达式) JavaScript 与 TypeScript 区别 TypeScript...当解析导出(import)时候,会优先选择“.ts”文件而不是“.d.ts”文件,以确保处理是最新文件。...主要处理针对不同支持引擎读写文件(比如:Node.js)。 语言服务: “语言服务”核心编译器管道上暴露了额外一层,非常适合编辑器应用。...“令牌开始”是指更自然版本,它表示文件令牌开始位置。“完整开始”是指从上一个有意义令牌之后扫描器开始扫描起始位置。当关心琐事时,我们往往更关心完整开始。

2.1K20

我们如何使用 Webpack 将启动时间减少 80%

带有源代码和过程火焰图: 没有源代码过程火焰图: 不管是否包含 rudder-config-backend 源代码,图表都是一样,所以我们知道源代码不是问题,并且可以确定开销来自 Typescript...Typescript 设计上不会修改依赖项导入路径,带有模块 Node.js 对文件名应该如何表示有严格要求。...例如,数据库迁移文件必须在名末尾包含时间戳,这意味着源文件不能缩小,导入 / 导出名称不能被篡改。但经过几次尝试,我们成功了。果然,通过 webpack 及其插件处理,每个文件都简化了构建过程。...创建和导出配置文件 webpack 配置非常简单,只需在你项目根目录(通常是 package.json 所在文件夹)创建一个 webpack.config.js 文件,然后导出 webpack...我们从运行时依赖项删除了 Typescript,所以我们最终生产制品不再需要它,这样我们完全摆脱了这些依赖!

1.2K20

XFire体系及重要API(3)

->XFire->Code generation from WSDL document;  弹出一个对话框,如图3所示: 图3创建客户端代码存根 指定WSDL文件位置,存根代码输出地址及对应包...XFire插件将在生成客户端代码存根同时生成服务端代码存根,如下图所示: 图4生成代码 BbtForumServiceClient是BbtForumServicePortType工厂,它提供了若干个获取...而BbtForumServiceImpl是服务端存根代码,META-INF还有XFire服务配置文件。...Web Service测试 实际应用开放Web Service之前需要进行严格测试,以保证功能正确性。一般框架,测试Web Service往往这是一个炼狱般痛苦过程。...XFire可以通过多种方式将Spring容器Bean导出为Web Service,这包括使用XFireExporter导出器或JSR 181注解。

1.2K10

如何模拟一个XMLHttpRequest请求用于单元测试——nise源码阅读与分析

概述 我们进行单元测试过程,如果我们需要对一些HTTP接口进行相关业务测试,那么我们就需要来模拟HTTP请求发送与响应,否则我们就无法完成测试闭环。...Sinon引用HTTP模拟框架nise。...它是Sinon.js一部分,用来处理HTTP相关测试问题。 该库提供了替换原生XHR对象和Server相关接口,但是我们本文中只介绍关于XHR部分,也就是浏览器XHR对象替换。...该部分位于仓库/lib/fake-xhr/index.js,下文中提到nise如果没有特别注明,均表示niseXHR。...而我们进行HTTP相关测试时,参数是由我们传入,因此不需要进行验证。所以我们最终需要验证其实是callback处理逻辑和结果。因此,我们可以通过以下一个示例来看下它如何与业务代码进行结合。

2.5K10

快速学习TypeScript——模块

TypeScript也沿用这个概念 模块在其自身作用域里执行,而不是全局作用域里;这意味着定义一个模块里变量,函数,等等模块外部是不可见,除非你明确地使用export形式之一导出它们。...相反地,如果一个文件不带有顶级import或者export声明,那么它内容被视为全局可见(因此对模块也是可见导出 导出声明 任何声明(比如变量,函数,,类型别名或接口)都能够通过添加export...可以使用以下 import形式之一来导入其它模块导出内容 导入一个模块某个导出内容 import { ZipCodeValidator } from "....库 要想描述非TypeScript编写类型,我们需要声明库所暴露出API 我们叫它声明因为它不是“外部程序”具体实现。...复制代码 它同样可以通过全局变量形式使用,但只能在某个脚本(指不带有模块导入或导出脚本文件)里 mathLib.isPrime(2); 复制代码 创建模块结构指导 尽可能地顶层导出 用户应该更容易地使用你模块导出内容

1.2K10

15个Typescript 5.0 重要新功能快速了解一下

以下是简要概述: --allowImportingTsExtensions:允许导入带有 TypeScript 特定扩展名 TypeScript 文件,例如 .ts、.mts 或 .tsx。...--resolvePackageJsonExports:强制 TypeScript 在从 node_modules 读取包时查询 package.json 文件导出字段。...--customConditions:获取当 TypeScript 从 package.json 导出或导入字段解析时要考虑附加条件列表。.../types'; 在此示例,使用 export type * 语法将 types.ts 模块所有类型重新导出到 index.ts 模块。 9....编辑器不区分大小写导入排序 TypeScript 5.0 通过不区分大小写改进了编辑器导入排序。组织导入时,此更改会导致更自然和直观排序顺序,从而使代码更清晰、更易读。 13.

23430

iOS_单元测试三之OCMock使用

方法及其子类无法存根或验证 10.7、无法验证 NSObject 上方法 10.8、无法验证核心 Apple 私有方法 10.9、运行后验证不能使用延迟 10.10、测试中使用多线程 11、...这仅在部分模拟或模拟方法时有用。在这些情况下,使用andDo(nil)有效地抑制了现有行为。...当开发人员尝试为此类创建模拟程序时,将引发异常,解释问题说 该方法单独调用返回不同值是可以接受,这使它在运行时对特定条件做出反应 如果该方法为reason赋值,返回值将被忽略 对于所有未实现此方法...,则存根方法将持续存在,即使测试也是如此。...具体来说,以 NS 或 UI 作为前缀,所有带有下划线前缀和/或后缀方法。 某些情况下,可以对方法进行存根,然后对其进行验证。

3.1K20
领券