0

我有一个简单的应用程序,部分基于 ToDo-List 示例,它在客户端使用 Backbone。我已经安装了RTD并设法至少为模板添加了必要的存根,所以现在我遇到了错误ReferenceError: Can't find variable: Backbone

我发现了这个 GitHub 问题:Problems with _ - underscore - identifier,这可能与我使用下划线而不是主干的问题相同。

所描述的解决方案是:

[...] karma 启动的幻象将需要在 files 数组内的 karma.conf.js 中有任何依赖项。

现在我可以将我的 packages 文件夹中的主干.js 文件添加到 files 数组中,但是.meteor/local排除了整个文件夹下面的几行:

exclude : [
    '**/3rd/**/*.js',
    '**/istanbul-middleware-port/**/*',
    'karma.conf.js',
    'app/.meteor/local',
    'app/server/fixture.js',
    'app/server/fixture.coffee',
    'app/packages/**/*'
],

而且我不想测试 Backbone,我只是在我的应用程序中使用它,与用于 ToDo-List 示例的方式完全相同。

使用此类包测试(Meteor)应用程序的正确分步解决方案是什么(也可以是客户端引用的 jQuery、下划线或 AngularJS)

尽管我的大部分大学项目都必须进行 TDD,但我们的测试通常只是一个糟糕的笑话,完全没用,所以这对我来说几乎是第一次,我想编写有用的测试。

4

1 回答 1

1

我们将所需的第 3 方库放在“unit/stubs”文件夹中。我们内部应用程序中的任何模拟/存根也都在那里。加载顺序可能会变得棘手,因此我们以我们想要的顺序显式命名要加载的文件,如下所示:a1-jquery.min.js, a2-bootstrap-mocks.js.

我们仍在使用非常早期的 RTD 版本,但这里是相关的 karma conf:

// list of files / patterns to load in the browser
files = [
    JASMINE,
    JASMINE_ADAPTER,

    // stubs come first so they can be available when all the units need them
    'test/rtd/lib/*-stubs.js',
    'test/unit/stubs/*.js',

    // simulate loading order of meteor folder structure
    'app/lib/**/*.js',
    'app/server/lib/**/*.js',
    'app/client/lib/**/*.js',

    // now all the dependencies have been sorted, the app code can be loaded
    'app/**/*.js',


    'test/unit/**/*.js'
];


// list of files to exclude
exclude = [
    'app/lib/3rd/**/*.js',
    '**/istanbul-middleware-port/**/*',
    'karma.conf.js',
    'app/.meteor/local'
];
于 2014-03-25T13:05:11.957 回答