like
Matching for primitive data types.
Syntax
js
like(input)
Usage
โ Correct Usage
js
// string
like('one')
js
// number
like(1)
js
// boolean
like(true)
js
// object
like({
name: 'mom',
age: 50
})
โ Incorrect Usage
js
// array - instead use eachLike
like([1, 2])
js
// nested objects
// like only applies for the root properties
// - 'name'
// - 'age'
// - 'address'
like({
name: 'mom',
age: 50,
address: {
street: 'road no 60',
pin: 500500
}
})
Arguments
> input (string|number|boolean|object)
Input to match with.
Examples
Assertions
In this example, we are asserting the response from random-user
api. The results from the server are dynamic, so we are using the like
matcher in expectJsonMatch
to validate the type of the values instead of the content.
gender
should be a string.name
should be a object and it should includefirst
and it should be a string
dob
should be a object and it should includedate
and it should be a stringage
and it should be a number
js
const { spec } = require('pactum');
const { like } = require('pactum-matchers');
await spec()
.get('https://randomuser.me/api')
.expectJsonMatch({
"results": [
{
"gender": like("male"),
"name": {
"first": like("Amira"),
},
"dob": like({
"date": "1949-02-09T12:49:15.975Z"
"age": 67
})
}
]
});