gpt4 book ai didi

ember.js - 第一次为ember写mocha测试,缺少访问功能

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

我第一次尝试学习 Mocha 测试。我编写了一个简单的测试脚本,例如:

describe('Analytics Test Suite', function(){
//http://emberjs.com/guides/testing/integration/
before(function() {
AS.rootElement = '#ember-application-container';
AS.setupForTesting();
AS.injectTestHelpers();
AS.reset();
});

describe('visit analytics index page', function(){
visit("/analytics").then(function() {
it('should return -1 when the value is not present', function(){
expect([1,2,3].indexOf(4)).to.be(-1);
expect([1,2,3].indexOf(0)).to.be(-1);
})
});
})
});

但是我收到这个 js 错误:

ReferenceError:访问未定义

但是如果我将代码修改为:

describe('Analytics Test Suite', function(){

AS.rootElement = '#ember-application-container';
AS.setupForTesting();
AS.injectTestHelpers();
AS.reset();


describe('visit analytics index page', function(){
visit("/analytics").then(function() {
it('should return -1 when the value is not present', function(){
expect([1,2,3].indexOf(4)).to.be(-1);
expect([1,2,3].indexOf(0)).to.be(-1);
})
});
})
});

我收到这些错误:类型错误:app._容器_.lookup(...)未定义

在第一个场景中,访问函数似乎丢失了,当将初始化代码放在之前的代码之外时,这个问题就得到了解决。但随后我收到类型错误,我认为它应该查找 AS._container_lookup,但它查看的是应用程序命名空间。我正在使用 ember 调试版本 http://builds.emberjs.com/tags/v1.0.0/ember.js

我们将非常感谢您的帮助。我还添加了 jsbin http://jsbin.com/ILUbuy/2/

谢谢,迪伊

更新我解决了添加此适配器的问题:https://github.com/teddyzeenny/ember-mocha-adapter

最佳答案

我将尝试用 jsbin 来跟进这篇文章的工作示例。当我第一次开始在 Firefox 中测试 ember 应用程序时,我注意到我总是会收到此错误:

"before each" hook ‣
router is undefined

但这在 Chrome 中不会发生。我的领导刚刚发现我做得不对或遗漏了什么。基本上,当执行 mocah.run() 时,mocha 找不到应该运行应用程序的 div,因此一个简单的解决方案是:

$(document).ready(function(){
mocha.run();
});

我遇到的另一个错误但不知道为什么会出现这样的错误:

router.getHandler is not a function

原来这是因为我没有添加App.reset();造成的在我的 beforeEach 钩子(Hook)中。

有一个实例,我必须测试 div 是否在单击时切换(使用 jquery UI,.tollge('slow'))。问题是测试会成功运行,但随后的测试总是会失败,我永远无法理解为什么会发生这种情况。我知道这是由于 jquery UI 的原因,因为如果我直接将可见性设置为 div 而不使用花哨的效果,测试就会运行,所以如果您在内部使用 setTimeouts 时发生类似的情况,请执行类似这样的操作来测试它:

 it("some test", function () {
var context = this;

click(toggleButton).then(function () {
Ember.run.later(context, function () {

}, 1000);
wait().then(function () {
expect(DIV TO BE HIDDEN OR VISIBLE);
});
});
});

这个链接也非常有帮助:http://instructure.github.io/blog/2014/01/24/ember-run-loop-and-tdd/

好的,这是一个工作示例:http://jsbin.com/opuJetOy/1/上面的链接在 Chrome 中不起作用,似乎 chrome 不喜欢这样的链接:'https://raw.github.com/ ....',但它可以在 Firefox 中运行。

关于ember.js - 第一次为ember写mocha测试,缺少访问功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984191/

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