小编Nei*_*rdi的帖子

在 React 测试库中运行异步测试时,Apollo useQuery() 抛出错误:ECONNREFUSED

更新: \n尝试升级到 React 18 和 RTL 13,但这并没有解决问题。

\n
    \n
  • 反应16.4.0
  • \n
  • 反应脚本 5.0.1
  • \n
  • 阿波罗客户端3.5.9
  • \n
  • React 测试库 12.1.2
  • \n
\n

useQuery()我\xe2\x80\x99m 在测试挂载时调用 Apollo 的 React 组件时遇到了长期问题。如果我使用异步 RTL 方法,GraphQL 查询将失败并出现ECONNREFUSED错误。如果我使用同步 RTL 方法,我不会收到此错误。但是,同步方法不起作用,因为断言在loadingequals时运行true时运行。因此,数据尚未从查询中返回,因此没有可呈现的内容。

\n

以下是引发此错误的测试中的代码片段:

\n
it(\'renders\', async () => {\n  renderGrid()\n  const columnHeading = await screen.findByText(/Primary Household Member/i)\n  expect(columnHeading).toBeInTheDocument()\n})\n
Run Code Online (Sandbox Code Playgroud)\n

我已附上控制台中生成的内容的屏幕截图(见下文)。\n如果我将代码更改为同步,如下所示:

\n
it(\'renders\', () => {\n  renderGrid()\n  const columnHeading = screen.getByText(/Primary Household Member/i)\n  expect(columnHeading).toBeInTheDocument()\n})\n
Run Code Online (Sandbox Code Playgroud)\n

我没有得到ECONNREFUSED错误。然而,在这种情况下,loadingistruedata …

javascript reactjs create-react-app apollo-client react-testing-library

12
推荐指数
1
解决办法
644
查看次数

如何使用 Dockerized SAM Local 设置调试

我正在处理一个使用 AWS Lambda 和 Node.js 的项目。我们将 Docker 容器用于我们的开发环境。

我们当前的设置在端口 :3000 上启动本地 AWS SAM。它运行 start-api 并将函数挂载到我的 template.yml 文件中。我使用邮递员测试这些功能以将 JSON 发送到已安装的 API 端点,如下所示:http : //127.0.0.1 : 3000/ foo

Docker 设置还在 :4000 上启动了一个单独的 Node.js 实例。

如上所述,我可以在本地测试 Lambda 内容。但是,我想激活调试,以便我可以单步执行该函数并检查变量,而不是使用console.log(). 我不知道如何编辑 Dockerfile / docker-compose.yml 来实现这一点。

这是我的 docker-compose 文件:

version: '3'
services:
  web:
    build: ./web
    container_name: someapp
    command: npm run dev
    volumes:
      - ./web:/usr/app/
      - /usr/app/node_modules
    ports:
      - "4000:4000"
    environment:
      DATABASE_URL: mongo://someapp:someapp@10.10.62.205:37017,10.10.62.205:37018,10.10.62.205:37019/somedb
  sam:
    build: serverless/.
    container_name: samlocal
    command: sam local start-api --host 0.0.0.0 …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services dockerfile aws-lambda docker-compose aws-sam-cli

6
推荐指数
1
解决办法
3472
查看次数

Visual Studio Code 调试器未连接到 SAM 本地

根据 AWS 文档,我将像这样启动本地 SAM:

$ sam local start-api -d 5858
Run Code Online (Sandbox Code Playgroud)

我的 launch.json 中有以下内容

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to SAM Local",
            "type": "node",
            "request": "attach",
            "address": "localhost",
            "port": 5858,
            "localRoot": "${workspaceRoot}",
            "remoteRoot": "/var/task"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是当我启动 Visual Studio 调试器时,它说“无法连接到运行时,请确保运行时处于‘旧版’调试模式”

看起来很多人都在使用 Node.js 6 和 Visual Studio Code 时遇到这个问题,但我似乎找不到答案......我正在使用 Visual Studio Code 版本 1.18.1

我尝试将 "protocol": "Legacy" 添加到 launch.json 配置。我还尝试使用 --debug-port 而不是 -d 。我使用的是 Windows 10。不确定问题是否特定于 Windows。

debugging visual-studio-code aws-sam-cli

5
推荐指数
1
解决办法
5753
查看次数

为什么每次运行调用Foo :: getInstance()的脚本时PHP都会创建一个单例的新实例?

我怀疑PHP单身人士不是真正的单身人士,所以我做了一个测试.我创建了以下类:

class MySingleton {


    private static $instance;


    private function __construct()
    {
        error_log("I am a new instance of MySingleton. I was instantiated at " . time());
    }


    private function __clone(){}


    public static function getInstance()
    {
        if(!is_object(self::$instance)) {
            self::$instance = new MySingleton();
        }
        return self::$instance;
    }

}
Run Code Online (Sandbox Code Playgroud)

接下来我创建了一个名为test.php的文件:

require('MySingleton.php');

$foo = MySingleton::getInstance();
$bar = MySingleton::getInstance();
$baz = MySingleton::getInstance();
Run Code Online (Sandbox Code Playgroud)

当我在我的localhost上运行test.php脚本时,我在Apache错误日志中得到一个条目,这使它看起来像它应该做的那样.但是,每次我在浏览器中刷新页面时,我都会在错误日志中获得另一个条目,这意味着PHP正在实例化一个新对象.

有什么我可以做的不同,使这个类返回一个持久的对象的单个实例?(即单身人士该做什么).

请不要回答你认为单身人士不好的所有原因.我已经熟悉那些谈话要点了.

提前致谢!

php singleton

3
推荐指数
1
解决办法
2370
查看次数

如何使我的 React 上下文提供程序类型安全

我有一个 React 上下文提供程序。我用JS写的,现在用TS重写。我很难让这些类型正常工作。上下文被初始化为未定义。稍后它会设置一个action属性,该属性可以是 any ActionCreator,也可以是一个args属性,该属性可以是 any Action。我尝试了几种不同的方法,但就像打地鼠一样。这就是我目前所拥有的:

\n
import { createContext, FC, PropsWithChildren, useState } from 'react'\nimport { Action, ActionCreator } from 'redux'\nimport { Dispatch, SetStateAction } from "react";\n\ntype ModalStateT = {\n  action: ActionCreator<any> | undefined\n  args: Action | undefined\n}\n\ntype ModalContextT = {\n  modalState: ModalStateT\n  setModalState: Dispatch<SetStateAction<ModalStateT>>\n  resetModalState: ({action, args}: ModalStateT) => void\n}\n\nexport const ModalContext = createContext<ModalContextT | undefined>(undefined)\n\nconst ModalProvider: FC<PropsWithChildren> = ({ children }) => {\n\n  const defaultState = {\n    action: undefined,\n    args: …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux react-redux react-context

2
推荐指数
1
解决办法
228
查看次数