繁体   English   中英

茉莉花测试javascript内部功能

[英]jasmine test javascript inner function

这是我的JavaScript代码

function organization() {
  var self = this;

  function activate() {
    // statements
  }
}

我知道方法activate()的范围仍然在方法organization()内,这就是我面临的挑战。

我的要求是在Jasmine中编写一个测试,以确保已激活方法激活。

    it('activate method defined?', function() {    
      expect(activate()).toBeDefined();
    });

但是此测试失败,并显示以下消息

TypeError:激活不是函数

任何使上述测试成功的投入将非常有帮助。

以这种方式定义脚本。

function organization() {
  var self = this;

  self.activate = function() {
    // statements
  }}

并像这样访问功能

var obj = new organization();

obj.activate();

您无需检查实际调用或定义的私有功能“ activate”。 您需要检查公共函数“组织”是否被调用或定义,以及是否激活设置了一些公共属性等。例如:

function organization() {
    var vm = this;
    activate();        
    function activate() {
        vm.activated = true;
    }
}

it('should activate organization', function() {
    organization();

    expect(vm.activated).toBe(true);
});

或者,如果需要,可以使功能以公共方式激活:

function organization() {
   var vm = this;
   vm.isActivated = false;
   vm.activate = activate;

   function activate() {
       vm.isActivated = true;
   }
}

it('should activate organization', function() {
    vm.activate();

    expect(vm.isActivated).toBe(true);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM