我正在尝试为角度应用设置单元/ e2e测试。按照量角器网站上的说明和许多其他样本我已经设置并能够运行测试,除非他们指的是角度对象。 这是我想要测试的示例html页面:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script type="text/javascript" src="libraries/angular.js"></script>
<script type="text/javascript" src="libraries/angular-route.js"></script>
<script type="text/javascript" src="libraries/angular-touch.js"></script>
<script type="text/javascript" src="libraries/angular-sanitize.js"></script>
<script type="text/javascript" src="libraries/angular-mocks.js"></script>
.....
</head>
<body ng-controller="DefaultController">
...
测试:
describe('Logon page', function ()
{
beforeEach(function ()
{
browser.get('default.html');
angular.module("app");
});
it('should have a title', function ()
{
expect(browser.getTitle()).toEqual('Logon');
});
});
一旦我运行它我得到一个例外:&#34; ReferenceEror:angular未定义&#34;。 如果我删除了行&#34; angular.module(&#34; app&#34;);&#34; - 它工作正常。 通过查看量角器的控制台输出,看起来Protractor.waitForAngular()在我尝试访问&#34; angular&#34;之后被内部调用。宾语。但据我了解browser.get - 应该在之前加载吗?
我使用角度1.3.4和量角器1.4.0。
提前致谢。
答案 0 :(得分:1)
为什么需要angular.module("app");
部分?您在Protractor测试中编写的代码不能在浏览器中运行。它使用浏览器API(通过Selenium),但您无法直接访问您正在测试的页面上的角度模块或其他结构。
我认为你可能混淆了单元测试和E2E测试的概念。您只需要angular.module("app");
进行单元测试。