我的笑话文件未使用正确的返回值

问题描述 投票:0回答:1

我很确定这会很容易解决,但我已经被这个问题困扰了一段时间了。我正在使用 Jest 构建一个后台(后端)测试文件。这是我的

background.test.js
`

const fileConnection = require('../background');
const firebaseConnection = require('../background');
const stripeConnection = require('../background');

test('File Test', () => {
  expect(fileConnection).toBe(true);
});

describe('Background Test', () => {
  test('Firebase connection', async () => {
    expect(firebaseConnection).not.toBe(null);
  });
  test('Stripe and Back-End connection', async () => {
    expect(stripeConnection).not.toBe(null);
  });
});

`

还有我的

background.js
文件:

import { db } from 'firebase/firestore';

let test = false;

/**
 *
 */
function fileConnection() {
  test = true;
  return test;
}

/**
 *
 */
function firebaseConnection() {
  try {
    return db;
  } catch (error) {
    return null;
  }
}

/**
 *
 */
function stripeConnection() {
  // the backend stripe connection is on CENSORED
  // So I need to check if the connection is working
  try {
    fetch('CENSORED');
    return 'Stripe connection is working';
  } catch (error) {
    return null;
  }
}

module.exports = (fileConnection, firebaseConnection, stripeConnection);

现在,我遇到的错误是这个:

 ✕ File Test (4 ms)
  Background Test
    ✓ Firebase connection (1 ms)
    ✓ Stripe and Back-End connection (1 ms)

  ● File Test

    expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: [Function stripeConnection]

       7 |
       8 | test('File Test', () => {
    >  9 |   expect(fileConnection).toBe(true);
         |                          ^
      10 | });
      11 |
      12 | describe('Background Test', () => {

      at Object.toBe (src/test/background.test.js:9:26)

如您所见,我在文件测试函数上收到了条带连接的响应。我相信这可能与我导出 .js 文件的方式有关。谢谢你帮助我!

我尝试改变使用导出的方式,但我不确定为什么与 firebase 的连接没有消除该错误。只有条带连接才可以。我尝试过复制代码样式,但行不通。

javascript firebase jestjs stripe-payments
1个回答
0
投票

您的

module.exports
语句的语法是错误的,但我认为您运行测试时它是正确的。只是为了确定:您必须使用花括号。

module.exports = {fileConnection, firebaseConnection, stripeConnection};

关于测试失败:
开玩笑(正确地)告诉您

fileConnection
的值为
[Function stripeConnection]
,因为它 is 是一个函数。您的意图是比较该函数的结果,因此您必须调用它。您需要
expect(fileConnection).toBe(true)
而不是
expect(fileConnection()).toBe(true)
(注意函数调用)。

© www.soinside.com 2019 - 2024. All rights reserved.