我无法让Angular mock或Angular本身在sbt-web/sbt-mocha项目中被识别。
我正在编写一个基于sbt-web play http://typesafe.com/activator/template/play-2.3-highlights highlights示例的示例。我删除了其他插件,但留下了sbt-mocha插件。
我在libraryDependencies中声明了依赖项:
libraryDependencies ++= Seq(
"org.webjars" % "jquery" % "2.1.0-2",
"org.webjars" % "angularjs" % "1.3.0-beta.18",
"org.webjars" % "angular-ui-router" % "0.2.10-1",
"org.webjars" % "squirejs" % "0.1.0" % "test",
"org.webjars" % "chai" % "1.9.1" % "test"
)
然后我用一个常量写了一个angular应用,并把它放到了assets/javascripts中,命名为app.js:
angular.module('myApp', [])
.constant('PI', Math.PI);
接下来,我写了一个测试:
(function() {
'use strict';
describe('angular spec', function() {
beforeEach(module('myApp'));
it('should have an app with PI', inject(function(PI) {
expect(PI).to.be.defined();
}));
});
}());
然后启动sbt mochaOnly,得到:
[error] TypeError: module is not a function, it is object.
现在,我试着使用Angular .mocks.module,它给了我一个错误,Angular不存在。
我还将相同的库添加到测试路径中,认为测试路径可能与主路径隔离(愚蠢的想法),但这没有帮助。然后,我尝试按照http://www.scala-js.org/doc/sbt/depending.html只包含mock js文件,如下所示:
"org.webjars" % "angularjs" % "1.3.0-beta.18" / "angular-mocks.js" % "test",
但是它给了我一个"/"周围的错误,没有识别它,所以三击…
我已经用gulp, grunt,甚至maven-jasmine-plugin做了几十次了,但是现在我在sbt-web的世界里,它使用的是mocha,没有任何文档可以继续。我也是Scala的新手,想试着做一些事情,所以如果我还没有掌握的话,我很抱歉……很有可能!
我只是想用模块函数引导angular mock库,然后用inject注入像PI这样的angular资源。
我有一个GitHub repo与此代码在它…它是:https://github.com/krimple/sbt-web-project-with-angular/
有人想和我一起破解这个吗?我想弄清楚这个问题,并为angular的play seed项目做一个pull请求,这样我们就可以进行一些摩卡测试。如果有一个jasmine sbt插件就更好了,不过我想我们还是先来关注一下mocha吧。您缺少依赖项:
"org.webjars" %% "webjars-play" % "2.3.0"
看看是不是这个问题