我正在使用版本 3.4.0
我对 YUI.Test 断言有一个奇怪的问题。这是示例:
YUI().use('test', 'node', 'node-event-simulate',
function(Y) {
var runner = Y.Test.Runner;
var someTestCase = new Y.Test.Case({
name : 'SomeMeaningfulName',
setUp : function() {
var test = this;
// create show details link
test.Y$aLink = Y.Node
.create('<a href="//some.fake.url.ie">Show details</a>');
Y.one('body')
.append(test.Y$aLink);
},
tearDown : function() {
this.Y$aLink.remove();
},
testEventListener : function() {
var test = this;
test.Y$aLink
.on('click', function(e) {
e.preventDefault();
// this codes works
console.log('on click event');
// this one doesn't fail
// it "works" perfectly when it's outside of the callback
Y.assert(false, 'false is true');
});
test.Y$aLink.simulate('click');
}
});
runner.add(someTestCase);
runner.run();
});
断言在事件回调中时永远不会失败:(文档没有提到这种情况......
也许我做错了什么,但缺乏文档使得很难确定......
更新
没有等待/恢复的例子:http: //jsfiddle.net/op1ekun/Fgra6/2/
还有一个等待/恢复 http://jsfiddle.net/op1ekun/Fgra6/5/
更新2
已经报道了一个类似的案例,它涉及异步测试问题,但这不是我的问题:http: //yuilibrary.com/projects/yuitest/ticket/74
更新3
这似乎正是我正在经历的,看起来比利已经提出了一个解决方案,有趣的是使用依赖注入,它可能值得一试: http ://csausdev.wordpress.com/2011/02/12 /unit-testing-callbacks-with-yui-test/
请帮忙!谢谢!