0

以下代码永远不会运行:

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();
            });
        });
    });
 });

如果我使用定义块,则代码永远不会在 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() 函数永远不会抛出错误。

我做错了什么?

4

1 回答 1

2

在开始测试之前,您必须要求您的模块:

require(["model/MyModel"], function (MyModel) {
  describe('Something', function () {
    it('shows no error', function () {

      console.log(MyModel);
      expect(false).toBeTruthy();
    });
  });
});

在您的示例中,测试运行器在运行 require 回调之前完成了测试。

于 2013-09-17T06:19:39.820 回答