Jasmine require.js maven插件

时间:2012-07-10 22:02:43

标签: backbone.js requirejs jasmine

我正在尝试使用require.js配置jasmine maven插件来加载jasmine规范。

以下是我的maven配置

<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.1.0</version>
<configuration>
<specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
<jsSrcDir>${project.basedir}/src/main/webapp/backbone/js</jsSrcDir>
<jsTestSrcDir>${project.basedir}/src/test/javascript/spec</jsTestSrcDir>
<srcDirectoryName>js</srcDirectoryName>
<specDirectoryName>spec</specDirectoryName>
<specIncludes>
<include>*Spec.js</include>
</specIncludes>
<preloadSources>
<source>backbone/js/libs/jquery/jquery.js</source>
<source>backbone/js/libs/require/require.js</source>
<source>backbone/js/libs/underscore/underscore.js</source>
<source>backbone/js/libs/backbone/backbone.js</source>
<source>backbone/js/libs/bootstrap/bootstrap.js</source>
<source>backbone/js/config.js</source>
</preloadSources>
</configuration>
</plugin>

以下是我的茉莉花规格:

define(['models/Specification'], function(Specification) {
describe("Specification", function() {
var specification;
beforeEach(function() {
specification = new Specification();
})
it("thickness set to 4 by default", function () {
expect(specification.thickness).toEqual(4);
});
});
});

以下是javascript文件

define(["backbone"], function ($, _, Backbone) {
return Backbone.Model.extend({
defaults: {
thickness: 4
}
});
});

我收到以下错误: TypeError:无法调用未定义的方法“extend”

无论如何加载我的require.js配置而不是手动加载它们?

感谢任何帮助。

谢谢, 拉维

1 个答案:

答案 0 :(得分:0)

要扩展rjz的帖子并进一步回答问题...是的,您可以加载您的require.config文件并让它为您加载所有库文件/依赖项。无需在插件的配置中列出文件。我写了一篇快速文章,总结了我使用Require.js jasmine+maven+requirejs+coverage使用jasmine-maven-plugin的经历。我在我的帖子中包含了我的pom.xml以供参考。你的main.js(或任何包括你的require.config)应该只是你的一个源文件是吗?所以应该指向你的源目录,因此你的require.config被加载,它处理你的依赖项的加载,而不是jasmine-maven-plugin。希望我的帮助。