جاوااسکریپت - چگونه در Jest بخشی از یک رشته را در آرایهای از اشیاء مطابقت دهیم؟
من از موارد زیر استفاده میکنم:
- Node.js: 9.8.0
- جیست: ۲۲.۴.۲
یک آرایه به صورت زیر از تابع myFunction بازگردانده میشود:
[
...
{
id: 00000000,
path: "www.someUrl.com/some/path/to"
}
...
]
و من میخواهم آن را با نوع آرایه زیر مطابقت دهم:
const output = [
...
{
id: 00000000,
path: "path/some/path/to"
}
...
]
به طور خلاصه: من میخواهم کل شناسه را مطابقت دهم، اما تنها بخشی از مسیر را.
اما من واقعاً نمیدانم چگونه... من روشهای زیر را امتحان کردهام:
expect(myFunction()).toEqual(expect.arrayContaining(output));
اما این به من خطا میدهد.
پاسخ شماره ۱
من با کد زیر حل کردهام:
const output = JSON.parse(readFileSync('./myFunction.json', 'utf8'));
describe('Testing myFunction.', () => {
test('Deafult test.', () => {
const input = myFunction();
input.map((value, index) => {
const { imageURL, ...remaining } = output[index];
expect(value).toMatchObject({
...remaining,
imageURL: expect.stringContaining(imageURL)
});
});
});
});
