小编Luc*_*gon的帖子

React Router v4重定向单元测试

如何在反应路由器v4中对组件进行单元测试?我没有成功尝试使用jest和酶对重定向进行单元测试.

我的组件:

 const AppContainer = ({ location }) =>
  (isUserAuthenticated()
    ? <AppWithData />
    : <Redirect
        to={{
          pathname: "/login",
          state: { from: location }
        }}
      />);
Run Code Online (Sandbox Code Playgroud)

我尝试测试它:

    function setup() {
  const enzymeWrapper = mount(
    <MemoryRouter initialEntries={["/"]}>
      <AppContainer />
    </MemoryRouter>
  );

  return {
    enzymeWrapper
  };
}

jest.mock("lib/authAPI", () => ({
  isUserAuthenticated: jest.fn(() => false)
}));

describe("AppContainer component", () => {
  it("renders redirect", () => {
    const { enzymeWrapper } = setup();

    expect(enzymeWrapper.find("<Redirect></Redirect>")).toBe(true);
  });
});
Run Code Online (Sandbox Code Playgroud)

unit-testing reactjs react-router

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

.net core 3 依赖注入服务作为“配置”的参数

我刚刚将 .net 核心应用程序从版本 2.2 升级到 3。在 startup.cs 的 ConfigureServices 方法中,我需要解析身份验证服务使用的服务。我正在使用“services.BuildServiceProvider()”“构建”所有服务,但 .net core 3 抱怨创建额外服务副本的方法,并建议我将依赖注入服务作为“配置”的参数。我不知道这个建议是什么意思,我想了解它。

public virtual void ConfigureServices(IServiceCollection services)
{
    // Need to resolve this.
    services.AddSingleton<IManageJwtAuthentication, JwtAuthenticationManager>();

    var sp = services.BuildServiceProvider(); // COMPLAINING HERE!!
    var jwtAuthManager = sp.GetRequiredService<IManageJwtAuthentication>();

    services
        .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(c =>
        {
            c.TokenValidationParameters = new TokenValidationParameters
            {
                AudienceValidator = jwtAuthManager.AudienceValidator,
                // More code here...
            };
        }
}
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection asp.net-core

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

Apollo js订阅乐观UI

使用带有订阅的乐观UI是否有意义?

所以基本上:

addChannelMutation({
  variables: { name: eventValue },
  optimisticResponse: {
    __typename: "Mutation",
    addChannel: {
      __typename: "Channel",
      id: data.channels.length,
      name: eventValue
    }
  },
  update: (store, { data: { addChannel } }) => {
    // Read the data from our cache for this query.
    const data = store.readQuery({ query: channelsListQuery });
    // Add our comment from the mutation to the end.
    data.channels.push(addChannel);
    // Write our data back to the cache.
    store.writeQuery({ query: channelsListQuery, data });
  }
}).then(res => {});
Run Code Online (Sandbox Code Playgroud)

它将同一项添加两次,触发重复的密钥异常。因此,乐观的ui对于订阅是否有意义?

subscriptions apollo reactjs optimistic-ui

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

打字稿不检测空检查和抱怨参数不可分配

所以我有一个需要某种非可空类型的函数.在调用函数之前,我检查输入参数是否不为null,但显然,typescript无法理解并且抱怨说:

'HermiteOctreeNode |类型的参数 undefined'不能赋值给'HermiteOctreeNode'类型的参数.

类型'undefined'不能分配给'HermiteOctreeNode'类型.

if (node.nodeType !== NODE_TYPE_LEAF && node.nodeType !== NODE_TYPE_PSEUDO) {
for (let i = 0; i < node.children.length; i++) {
  if (node.children[i] != null) {
    rebuildOctreeNode(node, /* node.children[i]  HERE /*, i);
  }
}
Run Code Online (Sandbox Code Playgroud)

null typescript

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