在量角器测试中覆盖常量

时间:2016-02-18 18:07:42

标签: javascript angularjs protractor

我在配置对象中有这两个布尔变量,我将它传递给角度应用程序的常量。

在页面结算时检查这些布尔值。如果两者都为真,它将保留在页面中,如果其中一个为真,则会将用户弹回指定的页面。

请参阅以下代码

angular
.module('ecardGeneratorPrototype')
.constant('config', 
{
    "enable-file-upload": true,
    "enable-webcam": true

然后我在解析函数中检查这些:

.when('/home', {
    templateUrl: 'app/home/home.html',
    controller: 'HomeController',
    controllerAs: 'home',
    resolve : {
        choice: ['$route', '$window', 'config', function ($route, $window, config) {
            if ( config["enable-file-upload"] && config["enable-webcam"] ){
              //return
              return;
            }
            else
            {
              if ( config["enable-file-upload"] ){
                //go to the file upload page
                //$log( "display the file upload page" );
                $window.location.href = '#/file-upload';
              }
              else if ( config["enable-webcam"] ){
                //$log( "display the webcam page" );
                $window.location.href = '#/webcam';
              }
            }
            return;
        }]
    }
  })

我的问题是我可以覆盖这些常量,以便我可以在量角器测试中测试页面是否正确重定向?

1 个答案:

答案 0 :(得分:0)

也许你可以模拟你的模块并在beforeEach函数中提供你想要的常量。

类似的东西:



beforeEach(angular.mock.module("ecardGeneratorPrototype", function ($provide) {
    $provide.constant("enable-file-upload", false);
}));