ঠাট্টা: কী কী এবং কী কী সম্পত্তি তা পরীক্ষা করতে হয়


94

আমার এমন একটি জায়গা রয়েছে mapModuleযেখানে আমি উপাদানগুলি আমদানি করি এবং সেগুলি রফতানি করি:

import ComponentName from '../components/ComponentName';

export default {
  name: ComponentName,
};

আমি কীভাবে এটি পরীক্ষা করতে পারি mapModuleযার সঠিক রফতানি কী, মান রয়েছে এবং সেগুলি বাতিল বা অপরিজ্ঞাত নয়?

উত্তর:


129

ঠাট্টার 23.3.0 সংস্করণে,

expect(string).toMatch(string) 

একটি স্ট্রিং আশা করে

ব্যবহার:

const expected = { name:'component name' }
const actual = { name: 'component name', type: 'form' }
expect(actual).toMatchObject(expected)

ফলাফল পরীক্ষা পাস হয়


101

আপনি এর মধ্যে একটি ব্যবহার করতে পারেন:

টুএকোয়াল এবং টু ম্যাচওজেক্ট হ'ল অবজেক্টগুলির জন্য টেমপ্লেট ম্যাচার:

let Obj = {name: 'component name', id: 2};
expect(oneObj).toEqual({name: 'component name'}) // false, should be exactly equal all Obj keys and values  
expect(oneObj).toMatchObject({name: 'component name'}) // true

বা হ্যাভপ্রোপার্টি সহজেই ব্যবহার করুন:

let Obj = {name: 'component name'};
expect(oneObj).toHaveProperty('name') // true
expect(oneObj).toHaveProperty('name', 'component name') // true

24
এই উত্তরটি এখন আর সঠিক নয়। @ ব্যবহারকারী3605834toMatchtoMatchObject
ক্রিস্টোফার ডরফ

4
এটা তোলে @KristofferDorph এর মন্তব্যে অনুযায়ী আপডেট করা হয়েছে
Despertaweb

8

মনে রাখবেন যে .toMatchObject"একটি জাভাস্ক্রিপ্ট অবজেক্ট কোনও জিনিসের বৈশিষ্ট্যের একটি উপসেটের সাথে মেলে কিনা তা পরীক্ষা করে।" সুতরাং এটিতে অনিচ্ছাকৃত জোর দেওয়া থাকতে পারে:

expect({ a: 1, b: 2 }).toMatchObject({ a: 1 }); // pass

আপনি যদি কোনও অবজেক্টের সাথে ঠিক মিল রাখতে চান তবে আপনার ব্যবহার করা উচিত .toStrictEqual, যেহেতু উপলভ্য jest 23:

expect({ a: 1, b: 2 }).toStrictEqual({ a: 1 }); // fail

আসলে এটিই ম্যাচঅবজেক্টের জন্য নকশাকৃত দৃser় বক্তব্য। আপনি যদি আচরণটি না চান তবে আপনি টুএকুয়াল ব্যবহার করতে পারেন ...
ড্যান

0

একটি একক কী জন্য আপনি চেক আউট করতে পারেন

expect(Boolean(obj[prop])).toBe(true | false);

একাধিক কী (যেখানে অবশ্যই উপস্থিত থাকতে হবে) এর জন্য আপনি ব্যবহার করতে পারেন,

expect(Boolean(obj[prop1]) && Boolean(obj[prop2])).toBe(true | false);

একাধিক কী (যেখানে যে কোনও একটি উপস্থিত থাকতে হবে) এর জন্য আপনি ব্যবহার করতে পারেন

expect(Boolean(obj[prop1]) || Boolean(obj[prop2])).toBe(true | false);

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.