Tinytest添加未定义的文件对象

时间:2015-05-07 15:23:33

标签: meteor tinytest

我遇到了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)

想法?

1 个答案:

答案 0 :(得分:0)

您的两个文件在哪里以及它们的名称是什么? Meteor采用文件夹深度+字母顺序方法来加载javascript文件。

因此,如果您的Tinytest文件与test.js文件位于相同(或任何子)文件夹中,并且其文件名以" h"开头,则会加载 test.js之前,并且不了解您的Test功能。

要确保首先加载test.js文件,您应将其放在与Tinytest文件位于同一文件夹的文件夹中。或者,在任何父文件夹的lib文件夹中。

Learn more about file loading order in Meteor