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

对未导出函数的Mocha单元测试返回'xx is not a function‘

对未导出函数的Mocha单元测试返回'xx is not a function'是因为在测试代码中调用了一个未导出的函数,导致Mocha无法识别该函数并报错。

Mocha是一个流行的JavaScript测试框架,用于编写和运行单元测试。它支持多种测试风格和断言库,并提供丰富的功能和插件,使得测试代码编写和执行更加简单和灵活。

在进行单元测试时,我们通常会将被测试的代码模块导出为一个模块,然后在测试代码中引入该模块,并调用其中的函数进行测试。但是,如果在测试代码中调用了一个未导出的函数,Mocha会抛出一个错误,提示该函数不是一个可用的函数。

为了解决这个问题,我们需要确保在测试代码中只调用已经导出的函数。可以通过以下几个步骤来解决:

  1. 确保被测试的代码模块中的函数被正确导出。可以使用模块化的方式,如CommonJS或ES6模块,将函数导出为模块的一部分。
  2. 在测试代码中使用合适的导入语法引入被测试的代码模块。例如,在Node.js环境中可以使用require语句,而在浏览器环境中可以使用import语句。
  3. 在测试代码中只调用已经导出的函数。可以通过查看被测试的代码模块的文档或源代码,确定哪些函数是可以被调用的。

如果在Mocha单元测试中仍然遇到'xx is not a function'的错误,可以检查以下几个可能的原因:

  1. 函数名拼写错误:确保在测试代码中正确地引用了被测试的函数,并且函数名没有拼写错误。
  2. 导入语句错误:检查测试代码中的导入语句,确保正确引入了被测试的代码模块。
  3. 函数未导出:确认被测试的函数是否被正确导出为模块的一部分。可以查看被测试的代码模块的文档或源代码,确保函数被导出。

总结起来,对未导出函数的Mocha单元测试返回'xx is not a function'是因为测试代码中调用了一个未导出的函数。为了解决这个问题,需要确保被测试的函数被正确导出,并在测试代码中使用正确的导入语法引入被测试的代码模块。同时,需要注意函数名的拼写和导入语句的正确性。

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

相关·内容

大前端自动化工厂(5)—— 基于Karma+Mocha+Chai单元测试和接口测试

前端自动化测试 大多数前端开发者测试相关知识是比较缺乏,一来是开发节奏很快,来不及写,另一方面团队里也配备了“人肉测试机”,完全没必要自己来。...但随着项目体量增大,许多人维护同一份代码,经常会出现有些函数莫名其妙地结果不对了,或者某个接口入参变了,又或者哪位大哥把后端返回数据结构给改了。...Mocha基本语法 describe('我现在要测某一个页面的几个功能',function(){ describe('现在要测XX功能',function(){ it('某个变量值应该是数字...基于Chai自动化单元测试 单元测试原理并不算复杂,相当于另外编写了一套程序,把业务逻辑中脚本文件当做模块引入,模拟其运行环境(例如需要浏览器类型,全局变量等),然后使用一组或若干组覆盖不同使用场景参数来调用想要测试函数单元...,并判断函数返回结果是否和预期相同。

1.3K20

JavaScript单元测试利器Jest+mocha+chai

一:mocha介绍mocha是一款功能丰富javascript单元测试框架,它既可以运行在nodejs环境中,也可以运行在浏览器环境中。...mocha可以良好支持javascript异步单元测试mocha会串行地执行我们编写测试用例,可以在将捕获异常指向对应用例同时,保证输出灵活准确测试结果报告。...2.2JavaScript数据类型Undefined:使用var声明变量但是未进行初始化,初始化变量及未声明变量使用typeof运算符均会返回undefined;undefined变量和null...我们使用boolen()各种数据类型变量进行强制转换时规则如下:非空字符串,非零数值,非空对象进行boolen()转换时返回true。...2.5JavaScript中函数函数就是包裹在花括号中代码块,前面使用了关键词 functionfunction func_name(var1,var2) { 执行代码 }当调用该函数时,会执行函数代码

48620

如何用 JavaScript 编写你第一个单元测试

light:将当前交通灯颜色作为字符串返回属性。 next():更改交通灯为下个颜色函数。 添加单元测试 是时候为代码添加单元测试了。 在项目的目录下创建名为test文件夹。...这里是Mocha默认检查单元测试地方。在test文件夹下添加traffic.test.js文件。...在终端窗口中运行npm test,如果一切正常,Mocha会打印出单元测试运行结果。...创建一个新子组,并添加两个单元测试:一个用来检查灯是否按顺序正确切换,另一个用来检查在循环到红色后是否返回到绿色。...从我们单元测试中,我们知道这个函数没有正确地返回到绿色。我们可以看到,目前代码在lightIndex值超过交通灯颜色数量时进行检查,但索引是从0开始

87920

手把手,带你编写你第一个单元测试

代码进行单元测试,我们不仅仅要确保函数在输入正确值时,有正确输出,还要确保函数在输入错误参数时,运行结果是失败。这些对错误检查更有利于我们预测引发错误原因以及场景。...拆分复杂函数 功能逻辑复杂函数,编写单元测试是十分困难。我们要把复杂函数拆分为相对较小函数来进行单元测试。避免测试时涉及数据请求(数据库and网络请求) 单元测试应该是快速和轻量级。...如何编写单元测试 现在我们都已经单元测试有了一定了解了,那我们就着手开始编写我们第一个单元测吧!!! 这次我将带着大家使用Mocha框架--市面上比较主流测试框架之一。...都赋值为0 this.lightIndex = 0; } // 定义我们静态函数colors,只要一调用就返回函数 static get colors () { return ["green...lightIndex:一个指示当前交通灯颜色Index变量。light():一个返回当前交通灯颜色函数。next():一个改变当前交通灯颜色函数,使交通灯指向下一个颜色。

17920

使用mocha编写node服务单元测试

单元测试流程 编写单元测试代码流程基本就是 梳理代码流程 -> 针对每一个分支编写单元测试 -> 运行单测代码 -> 查看测试覆盖率报告。...null, '函数非法入参执行错误') }) }) 每一份单元测试脚本都应该至少包含一个describe模块,describe定义了一组逻辑相关测试组,第一个入参是测试组名称,第二个入参是交给...mocha框架执行函数。...mocha提供了两种方法来解决这个问题: promise 我们可以返回一个promise给mocha框架,等到promise状态改变时再执行断言: it('测试异步函数', function() {...done it方法第二个入参是一个执行函数,我们可以给这个函数传入一个done方法,等到异步返回后再去显示地调用done方法,告诉mocha该测试用例执行完毕。

3.9K20

单元测试 & mocha 简述

本文作者:IMWeb 黎清龙 原文出处:IMWeb社区 未经同意,禁止转载 单元测试 & mocha 简述 1....单元测试 单元测试(unit testing),是指软件中最小可测试单元进行检查和验证 这个最小测试单元,可以是一个函数,可以是一个类,可以是一个对象,也可以是一个组件,一个插件 在软件开发周期中,...举个例子 说了那么多,下面举个例子: 现在我们写一个数组去重函数,并这个函数进行单元测试,如下: var should = require('should'); function unique(...我们这里只测试了两个用例: 当传入数组是null或者是空数组时候,返回是空数组 应该返回一个新数组,并且是去重 实际上,每个测试用例都应该是遵循SPR,前面两个测试用例都应该分开一些,但为了篇幅考虑就组合到一起了...3 小结 从上面的例子我们可以看到,利用mocha框架来构建单元测试用例是很简单,构建测试用例也非常简洁 另外,通过例子我们可以看到,在编写测试用例时候是可以和代码本身分离,读者可以看下测试用例代码

74610

单元测试 & mocha 简述

单元测试 & mocha 简述 1....单元测试 单元测试(unit testing),是指软件中最小可测试单元进行检查和验证 这个最小测试单元,可以是一个函数,可以是一个类,可以是一个对象,也可以是一个组件,一个插件 在软件开发周期中,...举个例子 说了那么多,下面举个例子: 现在我们写一个数组去重函数,并这个函数进行单元测试,如下: var should = require('should'); function unique(...我们这里只测试了两个用例: 当传入数组是null或者是空数组时候,返回是空数组 应该返回一个新数组,并且是去重 实际上,每个测试用例都应该是遵循SPR,前面两个测试用例都应该分开一些,但为了篇幅考虑就组合到一起了...3 小结 从上面的例子我们可以看到,利用mocha框架来构建单元测试用例是很简单,构建测试用例也非常简洁 另外,通过例子我们可以看到,在编写测试用例时候是可以和代码本身分离,读者可以看下测试用例代码

79990

写代码无BUG,网易云前端单元测试方案总结

我希望通过这些工具各自作用掌握,了解完整前端测试技术方案。前端单元测试领域也很多,这里主要讲对于前端组件如何进行单元测试,最后会主要介绍下对于 React 组件一些测试方法总结。...通用测试 单元测试最核心部分就是做断言,比如传统语言中 assert 函数,如果当前程序某种状态符合 assert 期望此程序才能正常执行,否则直接退出应用。...AMD 需要全局引入 RequireJS,单元测试而言比较典型问题是在初始化 karma 时会询问是否使用 RequireJS ,不过一般现在很少有人使用了。...所以使用 Karma + mocha +chai 即可搭建一个完整浏览器端单元测试工具链。...使用 Jest + Enzyme React 进行单元测试 ?

9.5K20

如何用 JavaScript 编写你第一个单元测试

如何编写单元测试 我们已经回顾了一些单元测试最佳实践,现在准备好用 JavaScript 编写你第一个单元测试了。 本教程使用 Mocha 框架 —— 最流行单元测试之一。...lightIndex:一个变量,跟踪当前交通灯颜色索引。 light:以字符串形式返回当前交通灯颜色类属性。 next():将红绿灯更改为下一个灯光颜色功能。...配置和添加我们第一个单元测试 现在是时候围绕代码添加一些单元测试了。 在项目中创建一个名为 test 目录,这是 Mocha 默认检查单元测试地方。...describe() 这个函数单元测试进行分组集合,如下: describe( "TrafficLight", function () { }); 然后,我们将创建一些单元测试来验证他们自己子组中交通颜色...以上就是文章全部内容,感谢看到这里,希望你有所帮助或启发!

1.1K30

前端测试驱动开发模式(TDD)快速入门

前端TDD开发环境搭建 如果想应用Tdd方法到前端开发中,主要用到以下几个工具(工具用法在后面介绍): mocha.js mocha 主要提供了describe语法,用来描述测试用例,并且把执行测试后结果清楚返回到终端上...,sinon也可以返回这个函数执行与否。...,第二个是一个回调函数,其中可以放单元测试代码 it()里写单元测试代码,第一个参数还是这个测试名字,第二个回调函数中放入单元测试代码 assert 就是断言代码执行后结果是什么,比如这个例子中,...(badFn, 'this.commonDirectFn is not a function') // 再把包装后函数传入throws }) 复制代码 使用sinon模拟函数 如果需要模拟一个函数...mocha,chai,sinon一些高级用法,还需要通过实践去学习。 另,本文只是但纯js测试,react,vue和小程序都有他们自己ui测试方案。

2.4K20

前端自动化测试解决方案探析

主要有mocha,jasmine和qunit。我们先来看看使用mocha是怎样实现单元测试mocha   mocha特点是简单可扩展、支持浏览器和Node、支持同步和异步、支持连续用例测试。...测试集,以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它包含2个参数;断言,以assert语句表示,返回true或false...测试集以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它也包含2个参数;断言,以expect语句表示,返回true或false...Nightwatch则可以使用node书写端测试用例,并在Selenium server服务端运行测试,同样支持同步和异步。...四、总结与注意事项   通过单元测试工具和集成测试工具概述介绍,我们基本了解了单元测试和集成测试核心部分和特点,尽管目前主流测试工具各不相同,但是基本流程原理确实相同,小结里面也为大家做了分析

1.4K10

前端自动化测试解决方案探析

主要有mocha,jasmine和qunit。我们先来看看使用mocha是怎样实现单元测试mocha mocha特点是简单可扩展、支持浏览器和Node、支持同步和异步、支持连续用例测试。...测试集,以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它包含2个参数;断言,以assert语句表示,返回true或false...测试集以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它也包含2个参数;断言,以expect语句表示,返回true或false...Nightwatch则可以使用node书写端测试用例,并在Selenium server服务端运行测试,同样支持同步和异步。...四、总结与注意事项 通过单元测试工具和集成测试工具概述介绍,我们基本了解了单元测试和集成测试核心部分和特点,尽管目前主流测试工具各不相同,但是基本流程原理确实相同,小结里面也为大家做了分析。

1.6K70

前端自动化测试解决方案探析

主要有mocha,jasmine和qunit。我们先来看看使用mocha是怎样实现单元测试mocha   mocha特点是简单可扩展、支持浏览器和Node、支持同步和异步、支持连续用例测试。...测试集,以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它包含2个参数;断言,以assert语句表示,返回true或false...测试集以函数describe(string, function)封装;测试用例,以it(string, function)函数封装,它也包含2个参数;断言,以expect语句表示,返回true或false...Nightwatch则可以使用node书写端测试用例,并在Selenium server服务端运行测试,同样支持同步和异步。...四、总结与注意事项   通过单元测试工具和集成测试工具概述介绍,我们基本了解了单元测试和集成测试核心部分和特点,尽管目前主流测试工具各不相同,但是基本流程原理确实相同,小结里面也为大家做了分析

99621

如何做前端单元测试

我认为其中一个很大原因是很多人单元测试认知不够,因此我写了这边文章,一方面期望通过这篇文章让你单元测试有一个初步认识。另一个方面希望通过代码示例,让你掌握写单元测试实践能力。...常见单元测试工具 目前用最多前端单元测试框架主要有 Mocha (https://mochajs.cn/)、Jest (https://www.jestjs.cn/),但我推荐你使用 Jest,因为...不支持(需要其他库支持) Jest 默认支持 友好 支持 Mocha 生态好,但是需要较多配置来实现高扩展性 Jest 开箱即用 比如对 sum 函数写用例 ..../sum.js function sum(a, b) { return a + b; } module.exports = sum; Mocha + Chai 方式 Mocha 需要引入 chai...(3); }) .toThorw 能够让我们测试被测试方法是否按照预期抛出异常 但是需要注意是:我们必须使用一个函数将被测试函数做一个包装,正如下面 getIntArrayWrapFn 所做那样

3.2K20

使用Mocha测试node应用

对于开发者而言,应该自己产出代码负责。...单元测试 单元测试主要包含断言,测试框架,测试用例,测试覆盖率,mock,持续集成等几个方面,在用Mochanode应用进行测试时,我以下面几个方面为例进行介绍: Mocha—Javascript测试框架...Hosted on GitHub. —— MochaJS 可以在其官网介绍中看出,Mocha是具有强大测试功能测试框架: 断言库支持 钩子函数 异步代码测试和超时控制支持 测试报告 .....: 注意编写测试代码时最重要两件事就是: Mock数据 解决诸如异步、超时控制等问题 在下面的代码中,我是以测试路由接口形式,通过测试返回html字符串与构造mock数据相比方法来测试。...我觉得这还是蛮科学,但是身边普遍部署测试时候都是不得不部署时候才开始。相信当实践经验足够丰富时,各种业务逻辑足够熟悉时就能科学地开发吧!

1.1K20

使用Mocha测试node应用

对于开发者而言,应该自己产出代码负责。...单元测试 单元测试主要包含断言,测试框架,测试用例,测试覆盖率,mock,持续集成等几个方面,在用Mochanode应用进行测试时,我以下面几个方面为例进行介绍: Mocha—Javascript测试框架...Hosted on GitHub. —— MochaJS 可以在其官网介绍中看出,Mocha是具有强大测试功能测试框架: 断言库支持 钩子函数 异步代码测试和超时控制支持 测试报告 ......: 注意编写测试代码时最重要两件事就是: Mock数据 解决诸如异步、超时控制等问题 在下面的代码中,我是以测试路由接口形式,通过测试返回html字符串与构造mock数据相比方法来测试。...我觉得这还是蛮科学,但是身边普遍部署测试时候都是不得不部署时候才开始。相信当实践经验足够丰富时,各种业务逻辑足够熟悉时就能科学地开发吧!

998100

单元测试初体验

所以我在上周进行了一下单元测试调研,这次调研方向是主要使用 Mocha 基于 Karma 进行包括 UI 层单元测试。...单元测试框架 Mocha Mocha 是 JavaScript 一种单元测试框架,既可以在浏览器环境下运行,也可以在 Node.js 环境下运行。...部分 API describe('标题', function() { it('断言内容', function() { // 断言部分 }); }); Chai 部分 API Chai...该标记可以让其后断言不是比较对象本身,而是递归比较对象键值。...sinon.js 中 spy 主要用来监视函数调用情况,sinon 对待监视函数进行 wrap 包装,因此可以通过它清楚知道,该函数被调用过几次,传入什么参数返回什么结果,甚至是抛出异常情况。

1.5K20

【多图警告】学会JavaScript测试你就是同行中最亮仔(妹)

使用这种做法结果是一套全面的单元测试,可随时运行,以提供软件可以正常工作反馈。TDD重点是培养整个研发过程节奏感,就像跳踢踏舞一样,“ti-ta-ti”。...当调用add函数并且执行结果为6,执行不会报错,我们将代码改一下。...这是nodejsassert模块简单尝试,更多详细内容可猛戳Assert模块 PS: 还有很多断言库比如 should.js、chai等等 三、Mocha - 单元测试框架 Mocha是一个在Node.js...Mocha测试以串行方式运行,允许灵活准确报告,同时将捕获异常映射到正确测试用例。...PS: 单元测试框架还有 jest、jasmine等等 四、Karma-测试工具 一个测试工具,能让你代码在浏览器环境下测试。

1K60

快速学习-mocha 简介与入门

mocha 简介 mocha 是 JavaScript 一个单元测试框架,既可以在浏览器环境中运行,也可以在 node.js 环境下运行。...测试脚本示例 假设我们编写了一个 sum.js,并且输出一个简单求和函数: module.exports = function(...rest) { var sum = 0; for (let n...of rest) { sum += n; } return sum; }; 这个函数非常简单,就是输入任意参数求和并返回结果。...如果我们想这个函数进行测试,可以写一个 test.js,然后使用 Node.js 提供 assert 模块进行断言: const assert = require('assert'); const...通常是取数据,立即返回,与 v0.20.1 版本中 .call() 相同; contract.methods.setBrand('xxx').send(),合约发起交易,通常是修改数据,返回是交易

94830

Vue自动化测试

单元测试 代码单元测试主要针对某些核心功能某些函数进行测试。vue官方推荐是使用karma,mocha和chai等。karma并不是一个测试框架,也不是一个断言库。...Karma兼容Jasmine,Mocha和QUnit,可以集成mocha,webpack等功能,成为以Karma为平台单元测试,官方选择mocha测试框架和chai断言库。...语法结构,describe是这对某个组件或者函数名字描述,测试脚本里面应该包括一个或多个describe块,每个describe块应该包括一个或多个it块。...它其实即是将组件实例化过程进行封装,帮你模拟它组件实例化过程。shallow这个函数把组件List实例化,并传入props等参数,这样,你可以断言数据绑定结果。...} }) 端端测试 单元测试更多是某个组件或者js进行功能测试。端端测试(e2e)用于模拟整个业务流程进行自动化测试(填报,增删查改等)。

1.9K50
领券