首页 > 解决方案 > 收到:[SyntaxError: Unexpected token < in JSON at position 0]

问题描述

我正在尝试为通过 fetch api 进行 ajax 调用的服务编写测试。服务如下所示。

export function authService(user, apiEndpoint) {
  return fetch(`http://localhost:3000/api/v1/${apiEndpoint}`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: user,
  })
  .then(response => {
    return response.json();
  })
  .then(json => {
    return json;
  })
  .catch(error => {
    return error;
  });
};

我的测试看起来像这样。

it('should success upon fetch request', async () => {
        await expect(authService()).resolves.toBe(JSON.stringify({
            success: true,
            message: 'Logged in successfully.',
        }));
    });

但它显示了我的以下错误。

Expected: "{\"success\":true,\"message\":\"Logged in successfully.\"}"
    Received: [SyntaxError: Unexpected token < in JSON at position 0]

      88 |
      89 |  it('should success upon fetch request', async () => {
    > 90 |      await expect(authService()).resolves.toBe(JSON.stringify({
         |                                           ^
      91 |          success: true,
      92 |          message: 'Logged in successfully.',
      93 |      }));

似乎它没有返回我期望的 json 对象。我该如何解决这个问题?

标签: javascriptjestjsfetchenzyme

解决方案


推荐阅读