如何为每个启动配置多次运行相同的规范

时间:2013-07-21 14:09:04

标签: javascript jasmine

Jasmine是我最喜欢的测试javascript框架。到目前为止,我已经编写了没有任何问题的规范。

但有一天,我决定扩展我的应用程序(它只是简单的思维导图工具),使用多种图形类型而不是单一图形类型。现在它支持“Wbs”和“Orgchart”数据模型。显然,我不想将以前的数据模型的所有当前规范复制到新创建的规范中。

在我的情况下,仅仅修复一个全局的beforeEach函数就足够了吗?现在看起来像

var graph;
beforeEach(function () {
  graph = new Graph({
    template: Templates.Orgchart
  });
});

所以问题是如何为每种类型的数据模型制作相同的规范。或者,如果有任何方法可以将参数传递给jasmine.getEnv().execute()?任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

您可以循环运行测试:

['Wbs', 'Orgchart'].forEach(function(dataModel){

  var graph;
  beforeEach(function () {
    graph = new Graph({
      template: Templates[dataModel]
    });
  });

  describe('with ' + dataModel, function(){
//your tests
  })


})