我有很多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();
});