0

我在使用 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)

想法?

4

1 回答 1

0

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

因此,如果您的 Tinytest 文件与您的文件位于同一(或任何子)文件夹中test.js,并且其文件名以“h”开头,则它将在之前 test.js加载并且不会知道您的Test功能。

为了确保您的test.js文件首先加载,您应该将它放在与 Tinytest 文件相同的文件夹中的文件夹中。或者,lib在任何父文件夹中的文件夹中。

了解有关 Meteor 中文件加载顺序的更多信息

于 2015-05-07T15:54:43.413 回答