在Jasmine测试中重用常用代码?

时间:2014-04-16 10:17:30

标签: javascript angularjs jasmine

我有很多Jasmine测试,目前这些测试是自包含的,但通常可能使用完全相同的代码(例如以一些常见但非默认的方式模拟httpBackend,或者使用相同的DTO对象进行测试)。

使用angular和jasmine在这个公共代码中创建某种库的架构声音方法是什么?

比如在这段代码中我剪掉了我想要的外部常见位置 - 变量,函数。我可以创造一些“转储”这样的东西,但我更喜欢角​​度/茉莉花的方式,如果它是可用的。

如果在每个/之后共同使用每个也可以删除到公共代码位置,那就更好了。

  describe('ProjectConfiguration controller and service Integration', function() {

var scope, $routeParams, infraService, $httpBackend, controllerToTest;
var httpBackend;

var fakeId=12;
// SUCH TEST OBJECT CAN BE MOVED TO COMMON PLACE 
// SO OTHERS CAN RE-USE SHOULD THEY NEED IT
var fakedDtoBase = { // a dummy record      used as a starter for faking data
    Id: fakeId,
    ProjectName: 'FakePrj',
    ProjectDescription: 'FakePrjD',
    ProjectManagerMain: 'FakePrjMM',
    ProjectManagersOther: 'FakePrjOO',
    ProjectStatus: 1,
    ParentProjectId: null,
    Deleted: 0
};

  // FUNCTION INSIDE before EACH CAN BE MOVED TO COMMON PLACE
beforeEach(angular.mock.inject(function ($httpBackend) {
    httpBackend = $httpBackend;
    httpBackend.whenGET('Client.json').respond({
      "webApiUri": "https://url:44310",
      "authHeaderKey": "X-Auth-Token",
      "authCookieName": "AuthCookie"
    });
  })
);

afterEach(function(){
 // COMMON CODE INSIDE
    $httpBackend.verifyNoOutstandingExpectation();
    $httpBackend.verifyNoOutstandingRequest();
});

0 个答案:

没有答案