मुझे लगता है कि मेरे पास संस्करण 1.2 से 1.3 तक कोणीय-animate.js के साथ माइग्रेशन समस्या है। यहाँ मेरी एनीमेशनAngularJS 1.3.15 में सिंक्रोनस परीक्षण एनीमेशन कैसे करें?
'use strict';
angular.module('cookbook', ['ngAnimate'])
.animation('.slide-down', function() {
var NG_HIDE_CLASS = 'ng-hide';
return {
beforeAddClass: function(element, className, done) {
alert('before add');
if(className === NG_HIDE_CLASS) {
element.slideUp(done);
}
},
removeClass: function(element, className, done) {
if(className === NG_HIDE_CLASS) {
element.hide().slideDown(done);
}
}
};
});
तुल्यकालिक परीक्षण
'use strict';
describe('A Brief Look At Testing Animations(changed) - ', function() {
var scope;
var element;
var $animate;
var $rootElement;
beforeEach(module('cookbook', 'ngAnimateMock'));
describe('Synchronous testing of animations', function() {
var animatedShow = false;
var animatedHide = false;
beforeEach(module(function($animateProvider) {
$animateProvider.register('.slide-down', function() {
return {
beforeAddClass: function(element, className, done) {
debugger;alert(1);
animatedHide = true;
done();
},
removeClass: function(element, className, done) {
animatedShow = true;
done();
}
};
});
}));
beforeEach(inject(function($injector) {
scope = $injector.get('$rootScope').$new();
$rootElement = $injector.get('$rootElement');
}));
beforeEach(inject(function($compile) {
element = angular.element('<div class="slide-down" ng-show="hint"></div>');
$compile(element)(scope);
scope.$digest();
$rootElement.append(element);
}));
it('should animate to show', function() {
scope.hint = true;
scope.$digest();
expect(animatedShow).toBeTruthy();
});
it('should animate to hide', function() {
scope.hint = true;
scope.$digest();
scope.hint = false;
scope.$digest();
expect(animatedHide).toBeTruthy();
});
});
});
और कल्पना धावक
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Angular Spec Runner</title>
<link rel="shortcut icon" type="image/png" href="../../lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="../../lib/jasmine-2.0.0/jasmine.css">
<script type="text/javascript" src="../../lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="../../lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="../../lib/jasmine-2.0.0/boot.js"></script>
<script type="text/javascript" src="../../lib/angular-1.2.28_/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="../../lib/angular-1.3.15/angular.js"></script>
<script type="text/javascript" src="../../lib/angular-1.3.15/angular-route.js"></script>
<script type="text/javascript" src="../../lib/angular-1.3.15/angular-ui-router.js"></script>
<script type="text/javascript" src="../../lib/angular-1.3.15/angular-mocks.js"></script>
<script type="text/javascript" src="../../lib/angular-1.2.28_/angular-animate.js"></script>
<!--DOESN'T WORK WITH 1.3.15-->
<!--<script type="text/javascript" src="../../lib/angular-1.3.15/angular-animate.js"></script>-->
<!-- include source files here... -->
<script type="text/javascript" src="../src/cookbook.js"></script>
<link rel="stylesheet" href="../src/styles.css">
<!-- include spec files here... -->
<script type="text/javascript" src="cookbookSpec.js"></script>
</head>
<body>
</body>
</html>
जब मैं कोणीय-चेतन 1.2.28 सभी परीक्षणों पारित कर रहे हैं का उपयोग करें, लेकिन 1.3 छोड़ने के बाद भी है। 15 परीक्षण विफल रहे हैं। अब, मैं कोणीय-एनिमेट के दो संस्करणों के बीच अंतर की जांच करने की कोशिश कर रहा हूं। शायद, किसी को यह परेशानी थी। आपके जवाबों के लिए आप सभी का धन्यवाद।
परीक्षण कैसे विफल हो जाता है? धन्यवाद। – alecxe
@alecxe इस संदेश के साथ 'सच्चाई होने के लिए अपेक्षित झूठ।' – BILL
मुझे पूरा यकीन नहीं है कि मूल परीक्षण (जब यह काम करता है) ने असली एनीमेशन का परीक्षण किया। ऐसा लगता है कि यह असली एनीमेशन कोड के बिना भी पास होगा, और इसलिए केवल परीक्षण में कोड का परीक्षण करता है, जो थोड़ा व्यर्थ लगता है! (बेशक अगर मैं गलत हूं तो कृपया मुझे सही करें ...) –