উত্তর:
জন্য আশা , .equal
বরং তাদের তথ্য চেয়ে বস্তু তুলনা হবে, এবং আপনার ক্ষেত্রে এটি দুটি ভিন্ন অ্যারে হয়।
.eql
মানগুলি গভীরভাবে তুলনা করতে ব্যবহার করুন। এই লিঙ্কটি দেখুন ।
অথবা আপনি .deep.equal
একই অনুকরণ করতে ব্যবহার করতে পারেন .eql
।
অথবা আপনার ক্ষেত্রে আপনি চেক করতে চাইতে পারেন .members
।
জন্য দাবি আপনি ব্যবহার করতে পারেন .deepEqual
, লিংক ।
to.deep.equal(['a','b'])
কাজ বলে মনে হচ্ছে না। যাইহোক to.have.all.members(['a','b'])
। এত জটিল ...
গভীর সমান ব্যবহার করার চেষ্টা করুন। এটি নেস্টেড অ্যারেগুলির পাশাপাশি নেস্টেড জেসনকে তুলনা করবে।
expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });
পড়ুন দয়া করে প্রধান ডকুমেন্টেশন সাইটে ।
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
এসোসিয়েটিভ অ্যারেগুলি গভীরভাবে পরীক্ষা করতে চাই কীভাবে এটি ব্যবহার করবেন।
আমি একটি বিষয় জাহির করা যে দুটি চেষ্টা ছিল মিশুক অ্যারে সমান ছিল। আমি জানি যে এগুলি সত্যিই জাভাস্ক্রিপ্টে ব্যবহার করা উচিত নয় তবে আমি লিগ্যাসি কোডের আশেপাশে ইউনিট পরীক্ষা লিখছিলাম যা একটি এসোসিয়েটিভ অ্যারের রেফারেন্স দেয়। :-)
আমি আমার ফাংশন কলের আগে ভ্যারিয়েবলটিকে একটি বস্তুর (অ্যারে নয়) হিসাবে সংজ্ঞায়িত করে এটি করেছি:
var myAssocArray = {}; // not []
var expectedAssocArray = {}; // not []
expectedAssocArray['myKey'] = 'something';
expectedAssocArray['differentKey'] = 'something else';
// legacy function which returns associate array reference
myFunction(myAssocArray);
assert.deepEqual(myAssocArray, expectedAssocArray,'compare two associative arrays');
.deepEqual()
( chaijs.com/api/assert )।