首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从test ng-app到dev ng-app的角度切换

从test ng-app到dev ng-app的角度切换
EN

Stack Overflow用户
提问于 2015-03-06 10:25:49
回答 1查看 174关注 0票数 1

因此,这是我的问题,我想在运行测试或离线时模拟我的数据,但是在我可能/需要的时候通过使用npm run protractornpm run protractor-mock调用extarnal。

我拼凑在一起的解决方案是有两个index.html文件,其中一个添加了模拟(index-mock.html)。

因此,我的问题是如何让安装程序protractor-mock加载index-mock.html

注意:正如代码中所述,GET('http://localhost:5000...是不好的,但并不是当前的问题。

到目前为止我的档案

index.html:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" ng-app="PCA" class="no-js">
...
<script src="bower_components/angular/angular.js"></script>
...
</html>

index-mock.html:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" ng-app="PCA" class="no-js">
...
<script src="bower_components/angular/angular.js"></script>
...
</html>

app.js:

代码语言:javascript
复制
'use strict';
angular.module('PCA', [
    'ngRoute',
    'chart.js',
    'ngDialog',
    'ngCsv'
]).config(function ($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'views/chartContainer.html',
        controller: 'chartContainerCtrl'
    }).otherwise({redirectTo: '/'});
}).constant('config', {
    'apiUrl': 'http://localhost:5000'
});
//2nd app ->
angular.module('PCAMOCK', ['PCA', 'ngMockE2E'])
    .run(function($httpBackend) {
        $httpBackend.whenGET('http://localhost:5000/').respond({ //yes 'localhost:5000' this is bad but not the issues at hand
            "defaults": {
                "invURL": "http://www.invURL.com",
                "accountURL": "http://www.accountURL.com"
            }});
        $httpBackend.whenGET('http://localhost:5000/accounts').respond(200, {ciao:'mamma'}, {'Content-Type':'application/json'});
        $httpBackend.whenGET(/^/).passThrough();
        //...
});

package.json:

代码语言:javascript
复制
exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    'tests/*.js'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  baseUrl: 'http://localhost:8000/app/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 20:18:00

您可以在量角器中访问命令行参数。见How can I use command line arguments in Angularjs Protractor?。您应该能够使用它来区分两次运行,并更改传递给browser.get的URL。

不是直接问你的问题,但你可能想研究一下Protractor对模拟注射的支持。见 docshttp://eitanp461.blogspot.com/2014/01/advanced-protractor-features.html

您不需要有两个实现您的应用程序,它可以是不可知论的模拟-或不。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28896815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档