测试 Mongoose Node.JS 应用程序

2024-03-05

我正在尝试为我的 Node 应用程序的部分内容编写单元测试。我正在使用 Mongoose 作为我的 ORM。

我搜索了很多关于如何使用 Mongoose 和 Node 进行测试的信息,但没有找到任何内容。这些解决方案/框架似乎都是全栈的,或者没有提到模拟的东西。

有没有办法可以模拟我的 Mongoose DB,以便我可以在测试中返回静态数据?我宁愿不必设置测试数据库并用每个单元测试的数据填充它。

有人遇到过这种情况么?


我也去寻找答案,最后来到了这里。这就是我所做的:

我开始使用mockery https://github.com/mfncooper/mockery#readme然后创建我自己的模拟模块,每个模型作为属性挂在它上面。这些属性包装了真实模型(以便测试代码存在子属性)。然后我重写我想要操作的测试方法,例如保存。这样做的好处是嘲笑可以撤销嘲笑。

but...

我不太关心撤消模拟来为每个模型编写包装器属性。所以现在我只需要我的模块并覆盖我想要操作的函数。如果出现问题,我可能会在单独的进程中运行测试。

在我的测试的安排部分:

// mock out database saves
var db = require("../../schema");
db.Model1.prototype.save = function(callback) { 
    console.log("in the mock");
    callback();
};
db.Model2.prototype.save = function(callback) {
    console.log("in the mock");
    callback("mock staged an error for testing purposes");
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试 Mongoose Node.JS 应用程序 的相关文章

随机推荐

  • 实体框架 4.2 枚举支持

    EF 4 2 Code First 是否支持枚举类型 如果是这样 你如何使用它 使用 Nuget EntityFramework 包时 以下内容不会为枚举属性创建字段 public class FooContext DbContext pu
  • 如何从 FastAPI 应用程序获取每条路线路径?

    我是 FastAPI 和 Python 的新手 我需要获取根路径上的所有路由并将其显示给用户 但是 我找不到递归获取所有路径的方法 API 的版本借助以下工具进行 VersionedFastAPI并且当前代码没有给出版本内部的路径 它只返回
  • 动态地将行“透视”为列 - SQL Server

    我有一个看起来像这样的表 DtCreated UserName Question Answer 2016 09 24 14 30 11 927 mauricio Senha 99658202 2016 09 24 14 30 11 927
  • 创建或编辑模型实例时 Django admin 404 错误

    我目前正在调试 Django 站点的一个奇怪问题 其中一个特定模型在创建新实例或在管理界面中编辑现有实例时触发 404 错误 具体来说 该错误是在提交表单时发生的 我可以GET变化形式就好了 这种情况仅发生在实时站点上并且仅在保存此模型时发
  • 语法写作工具[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试用 EBNF 编写语法 除非有很好的理由 否则它必须是 EBNF 并且正在寻找一些实用程序 如果有一个 GUI 界面可以制作一个
  • String 类型和 string 类型有什么区别?

    有谁知道之间的区别String and string在打字稿中 我假设它们应该相同是否正确 var a String test var b string another test a b b a this gives a compiler
  • 用于本地主机上传和安装 WooCommerce 的 WordPress FTP 连接设置

    我无法上传 WooCommerce zip 文件并在本地主机上安装插件 每次我单击安装按钮时 WordPress 都会询问 FTP 凭据的连接信息 如下图所示 即使我输入 localhost 作为主机名 输入 admin 作为用户名 但它不
  • 如何删除存储库中的文件,同时在本地保留(和忽略)它们?

    我错误地将一些本地项目文件添加到 git 存储库并提交 推送它们 我想从远程存储库中删除这些文件 将它们保留在本地 并在将来的提交 推送中忽略它们 解决这个问题的最佳方法是什么 最干净的解决方案如下 git rm cached本地的额外文件
  • 如果使用 CreateResponse 扩展方法返回 Azure Function HttpResponseMessage,则执行测试时出错

    我的Azure功能代码如下 public static class MyHttpTriggerFunction public static async Task
  • PHP内容分离

    所以我们都知道 不仅在 PHP 中 您应该始终将代码与内容 设计 html 分开 我今天在这里看到有人说相反的 我的意思是 您不希望在更大的项目中使用其中之一 是吗 但是 将代码与内容分离的好方法是什么 我一直在使用一个简单的模板系统 主要
  • Angular2 中的 ViewChildren 装饰器可以与接口一起使用吗?

    我对 Angular 2 的理解是ViewChildren装饰器允许组件获取其他组件或指令的查询 当我知道组件的特定类型时 我可以让它在 Typescript 中工作 但我希望能够获得QueryList当我刚刚知道组件的接口时 这样 我就可
  • 如何提取大型文本文件中两个唯一单词之间的信息

    我有大约 150 个充满字符信息的文本文件 每个文件包含两个独特的单词 alpha 和 bravo 我想提取这些独特单词之间的文本并将其写入不同的文件 我可以手动按 CTRL F 组合这两个单词并复制它们之间的文本 我只是想知道如何使用程序
  • 将 Postgresql 与 Grails 一起使用:缺少序列或表:hibernate_sequence

    我在使用 Grails 2 0 和 Postgresql 9 1 时遇到问题 我正在尝试使用顺序 ID 映射现有数据库 但是 即使没有在域中创建任何类 我也会遇到错误 Compiling 1 source files Running Gra
  • 如何在 Liquid Haskell 中编写 log2 函数

    我正在尝试从 Liquid Haskell 学习book http ucsd progsys github io liquidhaskell tutorial book pdf 为了测试我的理解 我想写一个函数log2它接受 2 n 形式的
  • 让 GCC 优化手工组装

    试图让 GCC 不会每次生成加载 修改 存储操作 or 我定义了以下宏 define bset base offset mask bmanip set base offset mask define bclr base offset mas
  • Spring security 自定义身份验证过滤器,无需 web.xml

    使用注释和java配置 我不太清楚如何为spring security注册一个覆盖的过滤器 我想要实现的是自动登录而不显示登录表单 因为那时用户已经通过身份验证 因此 只会读取标头参数并使用 spring security 进行授权 这是我
  • 可以保留 ASIHTTPRequest 委托吗?

    保留子类的委托可以吗ASIHTTPRequest 我做了一个子类ASIHTTPRequest called JSONRequest 每个实例JSONRequest是它自己的委托 处理回调 并将它们传递给jsonDelegate 这是一个私有
  • 如何动态设置 JPA 标准查询的位置/命名参数?

    Hibernate 提供程序不会生成准备好的语句非字符串类型参数 除非它们设置为entityManager createQuery criteriaQuery setParameter Parameter p T t 默认情况下 如 Ecl
  • 在运行时绑定时,WPF UserControl 不会填充父容器

    我有一个带有 StackPanel 的窗口 并且 StackPanel 有一个 ContentControl 它在运行时获取绑定到它的 UserControl 在 MainWindow xaml 中
  • 测试 Mongoose Node.JS 应用程序

    我正在尝试为我的 Node 应用程序的部分内容编写单元测试 我正在使用 Mongoose 作为我的 ORM 我搜索了很多关于如何使用 Mongoose 和 Node 进行测试的信息 但没有找到任何内容 这些解决方案 框架似乎都是全栈的 或者