我遇到了TinyTest的问题。我在下面进行了测试
Tinytest.add('x - template', function (test) {
var t = new Widget("ddd");
test.equal(t.html,"");
});
此函数在另一个文件(test.js)
中function Widget(html){
this.html = html || "";
}
在我的package.js中:
Package.onTest(function(api) {
api.use('tinytest');
api.use('core:widgets');
api.addFiles('client/test.js');
api.addFiles('widgets-tests.js');
});
我可以运行我的测试,但收到此消息:
x
FAIL
S: template
- exception - message Widget is not defined
ReferenceError: Widget is not defined
at Package (packages/local-test:core:widgets/widgets-tests.js:12:1)
at [object Object].func (packages/tinytest/tinytest.js:636:1)
at packages/tinytest/tinytest.js:406:1
at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
at packages/meteor/timers.js:6:1
at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
想法?
答案 0 :(得分:0)
您的两个文件在哪里以及它们的名称是什么? Meteor采用文件夹深度+字母顺序方法来加载javascript文件。
因此,如果您的Tinytest文件与test.js
文件位于相同(或任何子)文件夹中,并且其文件名以" h"开头,则会加载在 test.js
之前,并且不了解您的Test
功能。
要确保首先加载test.js
文件,您应将其放在与Tinytest文件位于同一文件夹的文件夹中。或者,在任何父文件夹的lib
文件夹中。