【发布时间】:2014-08-18 12:47:54
【问题描述】:
我无法在 sbt-web / sbt-mocha 项目中识别 Angular 模拟或 Angular 本身。
我正在编写一个基于 sbt-web play http://typesafe.com/activator/template/play-2.3-highlights highlight 示例的示例。我杀死了其他插件,但留下了 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 应用,并将其作为 app.js 放入 assets/javascripts 中:
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 仅包含这样的模拟js文件:
"org.webjars" % "angularjs" % "1.3.0-beta.18" / "angular-mocks.js" % "test",
但是它给了我一个“/”周围的错误并且没有识别它,所以点击三个......
我已经用 gulp、grunt 甚至 maven 用 maven-jasmine-plugin 完成了几十次,但现在我在 sbt-web 世界中,它使用 mocha,并且没有任何文档继续。我也是 Scala 的新手,想尝试一些事情,如果我还没有得到它,请道歉......很有可能!
我只想用模块函数引导角度模拟库,然后用注入注入像 PI 这样的角度资产。
我有一个包含此代码的 GitHub 存储库...它是:https://github.com/krimple/sbt-web-project-with-angular/
有人想和我一起破解这个吗?我很想弄清楚它并为 angular 的 play seed 项目提出拉取请求,以便我们实际上进行一些 mocha 测试。更好的是 jasmine sbt 插件,但我认为我们必须首先关注 mocha。
【问题讨论】:
-
我还收到一条奇怪的消息,说除非我的评分为 1500 或更高,否则我无法使用标签 sbt-mocha 创建问题。什么?如果某个主题太稀少以至于您无法提出问题,您应该如何获得有关该主题的帮助?抱歉,这很烦人。
-
有趣的是,在 console.log 中,“模块”看起来像是代表 mocha“被测模块”的东西。 angular.mocks.module 不可用,因此未包含该脚本。
-
我更新了 git 存储库并包含了 assets/app.html 以及 assets/javascripts/app.js 示例。我能够在没有资产流水线工作的情况下让 Angular 工作(仅通过引用 assets/lib),但这并不理想。至少我可以继续前进,但让流水线工作和 mocha 功能测试会很好。
-
看起来更有希望使用另一个 github 项目作为指南 - 我现在正在查看 github.com/mariussoutier/play-angular-require-seed,它唯一缺少的是 sbt-mocha 插件。但它确实有一个很好的 requirejs 导入角度库的例子,而且它开箱即用。一旦我得到一个完整的工作堆栈,我将自己回答我的问题并结束它。
标签: angularjs scala playframework mocha.js sbt-web