【问题标题】:Meteor testing with mocha and meteor.methods使用 mocha 和 meteor.methods 进行流星测试
【发布时间】:2017-03-28 03:41:15
【问题描述】:

我正在尝试弄清楚如何将 Mocha 测试与 Meteor 一起使用。我找到了本教程:https://www.meteor.com/tutorials/react/testing,并且在步骤“11.3 为每个测试准备数据库”时遇到此错误:

错误:找不到 npm 模块“client/tasks.js”。你忘记打电话了吗 'modules-runtime' 包中的 package.js 中的'Npm.depends'?

我尝试调整我的 task.js 文件的导入路径:

import { Tasks } from '../../client/tasks.js';

我的项目目录结构:

imports/api/tasks.tests.js
client/tasks.js
client/tasks.html
server/methods.js
mycollection.js

我不使用 react,只是 blaze。我有用于数据库/集合操作的meteor.methods,例如“重命名任务”、“创建任务”等。

我的 tasks.js 和 tasks.html 位于客户端文件夹中。从 client/tasks.js 我用 Meteor.call() 调用我的 Meteor.methods,例如:

Template.myTemplate.events({
    'change .field': function(e) {
         var newName = e.target.value;
         Meteor.call('renameTask', this._id, newName);
    },

如何将本教程转移到我的 Meteor.call 示例中? Meteor.call() 的一个小的工作示例对我有很大帮助。

如果相关:Meteor 安装在 Windows 10 系统上。

【问题讨论】:

标签: meteor mocha.js meteor-blaze


【解决方案1】:

您可以为您的文件提供相对路径,例如:

import { Tasks } from '../client/tasks.js';

或者像这样的绝对路径:

import { Tasks } from '/client/tasks.js';

请参考您的目录结构并给出相应的路径。

【讨论】:

  • 我再次尝试并将这个测试文件移动到与本教程相同的路径:imports/api/tasks.tests.js。我的测试文件之前在项目根目录下。现在我正在尝试使用 import { Tasks } from '../../client/tasks.js'; 再次导入我的 js 文件,我得到了同样的错误: Error: Cannot find module '../../client/tasks.js' 。我将使用我的项目文件夹结构更新我的问题。
  • 项目目录结构添加。
  • 导入目录中的文件不会加载,除非从导入目录之外导入。您是从外部引用您的测试文件吗?
  • “外部”是什么意思,我该怎么做?我在教程方面找不到它。在我第一次尝试时,我将测试文件放在根项目目录中。后来将它移到与教程相同的目录中。
  • 这里是docs。但我认为它不会在执行测试时引起问题。
猜你喜欢
  • 2017-05-10
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多