gpt4 book ai didi

ember.js - 带有{{link-to}}帮助者的组件测试Ember-CLI

转载 作者:行者123 更新时间:2023-12-02 06:09:17 24 4
gpt4 key购买 nike

我相信我要做的是3个非常简单的测试。

1)检查组件渲染属性(Ember-CLI自动生成此属性)

2)点击一个导航到“user.index”路由的类(这是一个{{link-to}})

3)点击一个导航到“brands.index”路线的类(这是一个{{link-to}})

当我在浏览器中单击它们时,我可以确认这些路由可访问,但是测试失败。尽管指定了“brands-link”被点击,但“brands.index”测试仍保持“users.index”的期望。

任何帮助将不胜感激!

测试如下:

import {
moduleForComponent,
test
} from 'ember-qunit';

moduleForComponent('navigation-bar', 'NavigationBarComponent', {
// specify the other units that are required for this test
// needs: ['component:foo', 'helper:bar']
});

test('it renders', function () {
expect(2);

// creates the component instance
var component = this.subject();
equal(component._state, 'preRender');

// appends the component to the page
this.append();
equal(component._state, 'inDOM');
});

test('it can navigate to users', function () {
expect(3);

var component = this.subject();
equal(component._state, 'preRender');

this.append();
equal(component._state, 'inDOM');

click('.users-link');

andThen(function () {
equal(currentRouteName(), 'users.index');
});
});

test('it can navigate to brands', function () {
expect(3);

var component = this.subject();
equal(component._state, 'preRender');

this.append();
equal(component._state, 'inDOM');

click('.brands-link');

andThen(function () {
equal(currentRouteName(), 'brands.index');
});
});

组件模板是:
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<!--<img alt="Brand" src="...">-->
</a>
</div>
<ul class="nav navbar-nav">
{{#link-to 'users' tagName='li' classNames='users-link'}}<a href="#">Users</a>{{/link-to}}
{{#link-to 'brands' tagName='li' classNames='brands-link'}}<a href="#">Brands</a>{{/link-to}}
</ul>
</div>
</nav>

最佳答案

我相信这是因为当您使用moduleForComponent帮助程序时,您没有启动Ember App。 link-to帮助器需要路由器,除非实际启动了该应用程序,否则路由器将不存在或无法正确设置(即使用常规module帮助器并在startApp()块中调用beforeEach)。

我不确定这里是否有最佳解决方案...您可以对使用此组件的路由进行常规的集成测试,但这似乎很尴尬。

关于ember.js - 带有{{link-to}}帮助者的组件测试Ember-CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com