Meteor 使用sanjo进行集成测试的正确方法:jasmine和Blaze.render in
我正在使用sanjo:jasmine对我的应用程序进行测试。我正在尝试使用客户端集成测试和Blaze.render进行一个简单的检查,以查看我的头模板中是否存在链接元素。我使用alanning:roles来管理角色 在我的模板中,为了简单起见,我最小化了如下内容:Meteor 使用sanjo进行集成测试的正确方法:jasmine和Blaze.render in,meteor,jasmine,meteor-blaze,meteor-jasmine,Meteor,Jasmine,Meteor Blaze,Meteor Jasmine,我正在使用sanjo:jasmine对我的应用程序进行测试。我正在尝试使用客户端集成测试和Blaze.render进行一个简单的检查,以查看我的头模板中是否存在链接元素。我使用alanning:roles来管理角色 在我的模板中,为了简单起见,我最小化了如下内容: <template name="header"> <!-- Fixed navbar --> <div class="navbar navbar-default navbar-top na
<template name="header">
<!-- Fixed navbar -->
<div class="navbar navbar-default navbar-top navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only fa fa-bars"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a id="homelink" class="navbar-brand {{isActiveRoute regex='home' className='active'}}" href="/">AppName</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="{{isActiveRoute regex='dashboard' className='active'}}"><a id="daskboardlink" href="{{pathFor 'dashboard'}}">Dashboard</a></li>
{{#if isInRole 'ADMIN'}}
<li class="{{isActiveRoute regex='admin' className='active'}}"><a id="adminlink" href="{{pathFor 'admin'}}">Administration</a></li>
{{/if}}
</ul>
<ul class="nav navbar-nav navbar-right">
{{#if currentUser}}
<a href="/signout">Sign Out</a>
{{else}}
<a href="/signin">Sign In</a>
{{/if}}
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
</template>
匿名用户的第一组测试顺利通过,管理员的登录和注销也是如此。但是,检查adminlink是否存在的测试失败。这似乎是测试测试中是否存在元素的正确方法,但似乎模板尚未完全呈现。如前所述添加帮助程序,然后在规范顶部的每个元素之前添加,如下所示:
describe("Header template - NO MOCKS", function() {
beforeEach(function (done) {
Router.go('/');
Tracker.afterFlush(done);
});
beforeEach(waitForRouter);
...rest of your code
}
describe("Header template - NO MOCKS", function() {
beforeEach(function (done) {
Router.go('/');
Tracker.afterFlush(done);
});
beforeEach(waitForRouter);
...rest of your code
}