我正在尝试用 Jest 模拟 NextJS 路由器事件。在NextJS router & Jest找到了相关资源。那里的实现与我的非常相似。
但是,那里提到的解决方案对我不起作用。
我的测试如下:
import { mount, ReactWrapper } from 'enzyme';
import FavoritesPage from 'pages/user/favorites';
import configureStore, { MockStore } from 'redux-mock-store';
import storeInitialState from '__tests__/unit/support/storeInitialState';
import { Provider } from 'react-redux';
import { waitFor } from '@testing-library/react';
import { RequestStates } from 'types/State';
import useAdSetup from 'lib/hooks/useAdSetup';
const mockRequestState = RequestStates.Finished;
jest.mock('lib/Auth');
jest.mock('lib/EventLogger');
jest.mock('lib/hooks/useAdSetup');
jest.mock('lib/hooks/useFetchFavorites', () => {
return (): { requestState: RequestStates } => {
return {
requestState: mockRequestState,
}; …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Fargate ECS 配置负载平衡。我的理解是至少有两个目标群体。一个目标组随应用程序负载均衡器一起创建,一个目标组随 ECS 服务一起创建。
我的容器在 TCP 端口 5000 上运行其服务。我希望负载均衡器仅通过常规 443 端口公开 HTTPS,并将 HTTP 重定向到 HTTPS,或者如果这很困难,则直接删除 HTTP。
我发现监听器允许指定一大堆东西。然而,我对该服务创建的目标群体感到困惑。它 -IP类型组,侦听端口 80。无论我在服务创建/配置期间选择 HTTP 还是 HTTPS。
我的容器从来没有得到任何流量。我启用了负载平衡器日志记录,平衡器似乎不明白我想要它做什么。在"forward" "-" "-" "-" "-" "-" "-"每个请求末尾的日志中。
我跑去aws elbv2 describe-target-groups找定义。
{
"TargetGroups": [
{
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:505963211XXX:targetgroup/ecs-fargate-api-service-tg/1ebb89754b34d072",
"TargetGroupName": "ecs-fargate-api-service-tg",
"Protocol": "HTTPS",
"Port": 80,
"VpcId": "vpc-e623dd9b",
"HealthCheckProtocol": "HTTPS",
"HealthCheckPort": "traffic-port",
"HealthCheckEnabled": true,
"HealthCheckIntervalSeconds": 30,
"HealthCheckTimeoutSeconds": 5,
"HealthyThresholdCount": 5,
"UnhealthyThresholdCount": 2,
"HealthCheckPath": "/cookie-policy",
"Matcher": {
"HttpCode": "200"
},
"LoadBalancerArns": [
"arn:aws:elasticloadbalancing:us-east-1:505963211XXX:loadbalancer/app/node-api-lb/f5e512a2678688f5"
],
"TargetType": …Run Code Online (Sandbox Code Playgroud) 我有一堆用于测试/展示网络库的 CLI 实用程序的代码。该库被编译成一个程序集——DotNet Core DLL。
我有几个 CLI 示例展示了如何使用该库,例如,一个搜索使用分页功能,另一个返回所有内容等。基本上,每个都是一个简短的独立 CLI 程序。
我有针对 dotnet 核心的 CS 源文件和 csproj 文件。下面是配置:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="mylib>
<HintPath>../../bin/Debug/netstandard2.0/publish/mylib.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我希望每个源文件都有一个可执行文件,例如PGSample.cs将被编译成PGSample.exe等。我将如何实现这一目标?
我有一个用 React.JS 制作的网站,它不断地为正在发生的所有事情(但什么也没有)发出事件。例如,用户在表单中键入内容,发出事件。用户将焦点放在某个字段上并且一段时间内没有执行任何操作,我们再次发出一个事件。这个想法是为了了解客户的行为。
我有一个以前用作 的按钮<Button onClick={(e)=>handler(e)}/>。我必须对按钮进行去抖并将其更改为<Button onClick={(e)=>setTimeout(handler(e), 1000)}/>。否则,用户不明白发生了什么。
现在,我正在尝试将测试调整为:
it('displays similar listings', async () => {
const renderResult = renderVdp(renderParams);
await new Promise((resolve) => setTimeout(resolve, 1000));
await waitFor(async () => {
expect(renderResult.getAllByText('2017 BMW M3')).toHaveLength(4);
});
});
Run Code Online (Sandbox Code Playgroud)
通过添加之前的相关测试,我能够保持原始测试的工作await new Promise((resolve) => setTimeout(resolve, 1000));。如果没有它,测试将收到下一个发出的事件,该事件不是作为单击按钮的响应而发出的事件。
我想使用玩笑计时器模拟或类似的东西,而不是在我的测试中实际引入延迟。我尝试过使用jest.useFakeTimers(),但它不能按我的需要工作。我的期望落空了。
建议?
我尝试将 WarmUp 无服务器插件集成到我的项目中。但是,我相信它不起作用。我在 lambda\xe2\x80\x99s CloudWatch 日志组中没有看到 WarmUp 的调用,并且 lambda 在空闲一段时间后确实需要预热时间。
\n我的配置如下:
\nservice: ${file(./${env:DEPLOY_FILE_NAME}):service}\n\nprovider:\n name: aws\n custom:\n roleName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):roleName}\n profileName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):profileName}\n bundle:\n ignorePackages:\n - pg-native\n warmup:\n enabled: true\n events:\n - schedule: rate(5 minutes)\n prewarm: true\n plugins:\n - pluginHandler\n - serverless-plugin-warmup\n runtime: nodejs12.x\n iamRoleStatements:\n - Effect: 'Allow'\n Action:\n - 'lambda:InvokeFunction'\n Resource:\n - Fn::Join:\n - ':'\n - - arn:aws:lambda\n - Ref: AWS::Region\n - Ref: AWS::AccountId\n - function:${self:service}-${opt:stage, self:provider.stage}-*\n cfLogs: true\n stage: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):stage}\n region: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):region}\n memorySize: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):memorySize}\n timeout: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):timeout}\n keepWarm: false\n useApigateway: …Run Code Online (Sandbox Code Playgroud) javascript ×2
jestjs ×2
unit-testing ×2
.net-core ×1
amazon-ecs ×1
amazon-elb ×1
aws-lambda ×1
c# ×1
csproj ×1
mocking ×1
next-router ×1
next.js ×1
serverless ×1
settimeout ×1