나는이 mapModule
내가 구성 요소를 가져오고 내보낼 어디 :
import ComponentName from '../components/ComponentName';
export default {
name: ComponentName,
};
mapModule
내 보낸 키, 값이 올 바르고 null이거나 정의되지 않았는지 테스트하려면 어떻게 해야합니까?
답변
jest 23.3.0 버전에서
expect(string).toMatch(string)
문자열이 필요합니다.
사용하다:
const expected = { name:'component name' }
const actual = { name: 'component name', type: 'form' }
expect(actual).toMatchObject(expected)
결과는 테스트를 통과했습니다.
답변
다음 중 하나를 사용할 수 있습니다.
toEqual 및 toMatchObject는 객체에 대한 템플릿 매처입니다.
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
또는 toHaveProperty를 쉽게 사용하십시오.
let Obj = {name: 'component name'};
expect(oneObj).toHaveProperty('name') // true
expect(oneObj).toHaveProperty('name', 'component name') // true
답변
있다는 사실을 숙지 .toMatchObject
검사는 “자바 스크립트 객체는 객체의 속성의 부분 집합을 일치하는지 확인합니다.” 따라서 다음과 같은 의도하지 않은 주장이있을 수 있습니다.
expect({ a: 1, b: 2 }).toMatchObject({ a: 1 }); // pass
정확하게 물체를 일치시킬 경우, 당신은 사용해야합니다 .toStrictEqual
, 사용할 수 가입일 jest 23
:
expect({ a: 1, b: 2 }).toStrictEqual({ a: 1 }); // fail
답변
단일 키의 경우 확인할 수 있습니다.
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);