【问题标题】:how to load json file in meteor server side test如何在流星服务器端测试中加载 json 文件
【发布时间】:2015-12-09 15:46:07
【问题描述】:

我的 Meteor Server 方法首先调用另一个服务器来检索数据,缓存在 mongo db 中,然后响应请求。我想使用 Meteor 和 Velocity 测试我的服务器代码。

对于单元测试,我有一个 json 文件,其中包含来自 api 的示例响应,但我不知道如何加载该文件以模拟为服务器测试的 api 响应。由于是服务器测试,我无法从jasmine-jquery 访问jquerygetJSONFixtures()

如何在我的服务器测试代码中加载该 json 文件?

编辑从此answer我不想将我的测试资源文件作为资产捆绑在/private目录中

【问题讨论】:

  • @sparticus 什么是private 目录?这是存储我的测试资源文件的好地方吗?
  • 私有目录是放置服务器端资产(不是代码)的地方。 JSON 文件属于这一类。只需在您的流星根目录中创建一个名为“private”的目录并将 JSON 放入其中。在此处阅读有关私有目录的更多信息:stackoverflow.com/questions/21172215/…
  • 是的,json 文件绝对不是代码。但是,资产和测试资源之间存在一些区别。当我部署我的代码时,我不想发布我的测试文件。可以有多个测试资源,你说什么?
  • 在私人文件夹中,我将创建一个名为“test”的子文件夹。您可以将流星构建配置为不包含该目录,或者进行一些花哨的目录链接以提供对测试资源的访问权限,而无需将它们包含在构建中。

标签: javascript json meteor meteor-velocity


【解决方案1】:

感谢@sparticus 的好建议。

这解决了我的问题:

  1. 将所有测试资源文件放在./tests 目录中。我的在里面./tests/resources/**/*
  2. 对于每个运行测试 (gulp test) 的 gulp 任务,首先将它们复制到私有目录 ./private/tests。然后您的测试文件将以Assets.getText(<filename>) 的形式提供。
  3. 确保在运行任何新任务时还清理 ./private/tests 目录

这让我确信我的测试资源文件在部署期间没有捆绑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 2015-02-26
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多