আমার একটি AngularJS ডিরেক্টরি রয়েছে যার templateUrl
সংজ্ঞা দেওয়া আছে। আমি জেসমিনের সাথে এটি পরীক্ষা করার চেষ্টা করছি।
আমার জুঁই জাভাস্ক্রিপ্ট নিম্নলিখিত মত দেখায় সুপারিশ প্রতি এই :
describe('module: my.module', function () {
beforeEach(module('my.module'));
describe('my-directive directive', function () {
var scope, $compile;
beforeEach(inject(function (_$rootScope_, _$compile_, $injector) {
scope = _$rootScope_;
$compile = _$compile_;
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET('path/to/template.html').passThrough();
}));
describe('test', function () {
var element;
beforeEach(function () {
element = $compile(
'<my-directive></my-directive>')(scope);
angular.element(document.body).append(element);
});
afterEach(function () {
element.remove();
});
it('test', function () {
expect(element.html()).toBe('asdf');
});
});
});
});
আমি যখন আমার জেসমিনের বিশেষ ত্রুটিতে এটি চালিত করি তখন আমি নিম্নলিখিত ত্রুটিটি পাই:
TypeError: Object #<Object> has no method 'passThrough'
আমি যা চাই তা হ'ল টেম্পলেট ইউআরএলটি লোড হওয়ার জন্য - আমি ব্যবহার করতে চাই না respond
। আমি বিশ্বাস করি এটি এনজিমক ব্যবহার করে এর সাথে সম্পর্কিত হতে পারে পরিবর্তে ngMockE2E । যদি এই অপরাধী হয় তবে আমি কীভাবে আগেরটির বদলে ব্যবহার করব?
আগাম ধন্যবাদ!
expectGet
একটি অনুরোধ চেষ্টা করা হয়েছে কিনা তা খতিয়ে দেখছে।
$httpBackend
, নির্দেশের অধীনে প্রদত্ত ইউআরএলটি ব্যবহার করতে templateUrl
এবং এটি পেতে যেতে আমার কাছে মককে বলার একটি উপায় দরকার । আমি ভেবেছিলাম passThrough
এই কাজ করবে। আপনি কি এটি করার আলাদা উপায় জানেন?
.passThrough();
: যে ভাবে, কিন্তু ডক্স থেকে, আপনি ভালো কিছু চেষ্টা করেছি$httpBackend.expectGET('path/to/template.html'); // do action here $httpBackend.flush();
আপনি যদি অনুরোধটি, অর্থাত্ ধরা অনুপস্থিত করছি না - আমি এই আপনার ব্যবহারের ভাল ফিট মনেwhenGet()
আসলে, কিন্তু এর পরিবর্তে পরীক্ষা এটা পাঠানো হয়, এবং তারপর এটা পাঠান?