问题标签 [meteor-jasmine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
436 浏览

meteor - 仅为使用 Jasmine 包的测试运行代码

我在我的应用程序中使用sanjo:jasmineandvelocity:html-reporter包来尝试实现一些单元和集成测试。以本教程为指导,我完成了一些单元测试和一些集成测试。我无法弄清楚的是如何让代码在不属于单元测试或集成测试的“测试”环境中运行,但需要在测试之前运行并且仅用于测试。

我要解决的是我需要为测试创建一些虚拟用户,但我不希望它们出现在我的生产应用程序中。有点像“初始化”阶段,您可以在其中构建模型并插入所需的任何数据。有没有办法做到这一点?

0 投票
1 回答
224 浏览

meteor - 使用 sanjo:jasmine 和 Blaze.render 进行集成测试的正确方法

sanjo:jasmine用来测试我的应用程序。我正在尝试使用客户端集成测试和Blaze.render. 我alanning:roles用于管理角色。

在我的模板中,我是这样的(为简单起见最小化):

在我的测试中,我做了:

匿名用户的第一组测试通过了良好的测试,管理员的登录和注销也是如此。但是,查看是否#adminlink存在的测试失败。这似乎是测试元素是否存在于测试中的正确方法,但似乎模板可能尚未完全呈现。

0 投票
1 回答
316 浏览

meteor - 茉莉花在抱怨一个对象不等于一个对象

我正在尝试使用 jasmine 进行一些集成测试。我正在执行以下操作:

但是当它运行时,Jasmine 抱怨以下内容:

所以,从错误消息中,它说 A 不等于 A。如何修改测试以使其工作?

0 投票
1 回答
472 浏览

javascript - 使用 Velocity 和 Jasmine 测试 Meteor 时需要超时

对流星、速度和茉莉花来说很新,所以不确定我是否做错了什么,将茉莉花用于它不是为它设计的东西,或者这就是它的工作方式。

我发现我需要为几乎所有测试设置超时才能让它们通过。应该是这种情况还是我做错了什么?

例如,我正在运行一些测试来检查验证消息:

0 投票
4 回答
2254 浏览

meteor - Meteor / Jasmine / Velocity:如何测试需要登录用户的服务器方法?

使用velocity/jasmine,我对如何测试需要当前登录用户的服务器端方法感到有点困惑。有没有办法让 Meteor 认为用户是通过 stub/fake 登录的?

0 投票
1 回答
350 浏览

javascript - Meteor 集成测试,在 Velocity 的镜像中使用 jasmine 休息 api 端点

我正在尝试为使用流星编写的 API 端点创建测试。我正在使用茉莉花和速度。它旨在在同一个项目中运行,这就是我使用它们的原因。当我尝试运行测试并检查端点中的数据时,问题就出现了。我在 mongodb 副本中有一个引导数据集,当我发布它时,它与本地应用程序中引导的数据集不匹配。这是示例代码:

我认为它应该指向镜像的rest api。有没有办法做到这一点?我将 localhost:3000 更改为 localhost:5000 并没有用。如何查看镜像端口?提前致谢!

0 投票
0 回答
192 浏览

javascript - 仅在 Meteor Jasmine 测试中获得部分用户发布

我有一个客户端集成测试,以确保我的管理员用户可以通过我的应用程序中的用户管理界面更改用户角色。但是,当我查询我想要更改的用户时,即使它是在夹具中创建的,查询也会返回为空。

此测试失败并出现以下错误:

TypeError:无法读取未定义的属性“_id”

这是创建两个用户的夹具文件:

console.log我可以在 Jasmine 日志中看到夹具的输出,它显示了两个用户。来自 changeUser 的测试日志undefined的日志和一个仅包含当前用户的数组,用于完整的集合提取。

我能想象的唯一其他问题是发布和订阅。我看不出他们有什么问题,但我可能会错过它。这是出版物:

和订阅:

似乎只包含当前用户的默认 Meteor 用户发布正在交付以进行测试,但不应该等待路由并且该路由的用户订阅意味着整个用户列表正在发布/订阅?

0 投票
3 回答
330 浏览

meteor - 流星速度黄瓜和茉莉花的共享测试夹具

如何在我的黄瓜和茉莉花测试之间共享一个夹具?

我可以使用一个 jasmine 服务器集成测试创建一个夹具,该测试可与其他 jasmine 服务器集成测试一起使用。但是(我猜是因为不同的“镜子”?)我不能在黄瓜测试中使用相同的夹具。Mongo 集合没有 jasmine 服务器集成测试创建的数据。

一种选择是将状态保存到平面文件或 nock 中,类似于流星之外的东西。但是,为测试夹具引用一个公共集合(在同一个镜像上?)会简单得多。这可能吗?

0 投票
0 回答
34 浏览

javascript - 为什么在一个 Jasmine 描述块中使用多个计算时,Tracker 的反应性没有准确地启动一半?

当用 Jasmine 测试反应性时,一些 Tracker 计算开始以一种非常有趣的方式表现:恰好一半的计算是反应性的,另一半不是。

我为测试这种行为所做的如下:

所以基本上:

  1. 将反应式初始化foofalse.
  2. 开始跟踪它,等待它到达,true以便将测试声明为done().
  3. 使用超时来foo.set(true)解决测试。
  4. 停止此计算,因为不再需要它。

现在,让我们用不同的变量做同样的事情:

这就是乐趣的开始。虽然这个测试是相同的代码但名称不同,并且具有完全相同的编写逻辑,但它失败了,因为计算跟踪栏永远不会重新运行

console.log很好地展示了这一点:

foo 在它的计算中是:false
foo 在它的计算中是:true - 反应性开始了!
其计算中的 bar 是:false
[Nothing]

虽然很清楚 for 的计算foo被重新运行,因此其测试已完成,但 for 的计算bar永远不会失效,因此测试失败。

然而,这并不止于此。如果我们为一个新的反应变量(例如 )添加第三个测试用例baz并遵循与之前相同的过程(与其他变量一起初始化它,在同一函数的末尾添加测试describe),那么它就可以完美地工作了!

这里测试(1)成功,测试(2)失败,测试(3)成功。

现在,如果我们添加第四个测试,cat例如,按照相同的过程添加一个新的测试......那么测试(4)将失败并显示以下日志。

foo 在它的计算中是false
foo 在它的计算中是true
bar 在它的计算中是false bar 没有重新运行并且失败
baz 在它的计算中是false
baz 在它的计算中是true
cat 在它的计算中是false cat 没有重新运行并且失败
[Nothing]

foo并且baz已经对,而不是bar和做出了反应cat

我已经和另外两个(第五个和第六个)一起做了,同样的结果:(5)成功,(6)失败。
“奇数”测试成功,“偶数”测试失败。

完整复制代码:

为什么会这样?
我怎样才能解决这个问题,同时将所有这些反应变量保持在同一个describe函数中?


我试图添加嵌套describe函数但没有成功。
在自己不相关的describe函数中隔离测试时,这个问题神奇地消失了,请不要这样回答。

0 投票
1 回答
132 浏览

javascript - 有没有办法调试meteor-jasmine客户端单元测试?

我正在编写一个小型流星应用程序,同时我正在尝试练习 TDD。我遇到了一个小障碍,因为我不知道如何通过调试器运行我的 Jasmine 单元测试。

测试存储在[project root]/tests/jasmine/client/unit示例中。

速度文档详细说明了如何在此处调试服务器端测试,但没有提及客户端测试。

我可以调试客户端集成测试;启动流星时它会记录[velocity] jasmine-client-integration is starting a mirror at http://localhost:51259/.,然后去那里可以调试我的测试。但是似乎没有为客户端单元测试创​​建镜像?

编辑:事实上,我似乎也可以调试客户端集成测试localhost:3000。开发者控制台如下所示:

Chrome 开发者控制台

通过在 miscSpec.js 中添加断点,我可以调试我的集成测试。

最后,我知道 Meteor-Jasmine 将单元测试中 console.log 的输出写入到[project root]/.meteor/local/log/jasmine-client-unit.log. 这是可用的,但我更希望能够通过调试器运行测试,因为我发现更容易找出我做错了什么。

我在用着

  • 流星 1.2.0.2
  • 三条:茉莉花 0.20.2