以下代码永远不会运行:
define("model/Contact", function() {
console.log(Contact);
describe('Something',function(){
it('shows no error',function(){
require(["model/MyModel"], function(MyModel) {
console.log(MyModel);
expect(false).toBeTruthy();
});
});
});
});
如果我使用define块,代码永远不会在jasmine maven插件中运行: http://searls.github.io/jasmine-maven-plugin/amd-support.html
我的插件
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.3.1.2</version>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
<jsSrcDir>${jsFolder}/src</jsSrcDir>
<jsTestSrcDir>${jsTestFolder}/specs</jsTestSrcDir>
<preloadSources>
<source>${jsFolder}/src/extlib/requirejs/require.js</source>
</preloadSources>
</configuration>
</plugin>
有趣的是以下代码:
describe('Something',function(){
it('shows no error',function(){
require(["model/MyModel"], function(MyModel) {
console.log(MyModel);
expect(false).toBeTruthy();
});
});
});
如果我使用此代码,MyModel已定义并可用。但expect()函数永远不会抛出错误。
我做错了什么?
答案 0 :(得分:2)
在开始测试之前,您必须要求使用模块:
require(["model/MyModel"], function (MyModel) {
describe('Something', function () {
it('shows no error', function () {
console.log(MyModel);
expect(false).toBeTruthy();
});
});
});
在您的示例中,测试运行器在require回调运行之前完成了测试。