小编duf*_*aux的帖子

在 prisma 客户端上获取完整类型

当我使用 prismagenerate 生成 prisma 客户端时,我得到了一个包含数据库中所有类型的 index.d.ts 。但问题是所有类型都是“单一”的并且没有任何关系。当我查询类似的东西时

prisma.users.findMany({
            [... ]
            include: {
                cars: {
                  [...]
                }}});
Run Code Online (Sandbox Code Playgroud)

prisma 使用正确的类型动态输入响应

users & {
        cars: cars & {
           [...]
        };
    }
Run Code Online (Sandbox Code Playgroud)

所以一切正常,我有自动完成功能,除非我想将此变量传递给另一个方法,我想输入参数,所以我必须创建自己的类型用作方法参数。

type prismaUsers = users & {
        cars?: cars & {
           [...]
        };
    }
Run Code Online (Sandbox Code Playgroud)

但我问是否有一种方法可以从 prisma 获取“完整”类型,以避免我像在用户示例中那样创建带有可选子元素的所有“完整”类型。或者也许我做错了,还有其他方法可以做?

prisma

36
推荐指数
5
解决办法
4万
查看次数

使用多个属性创建对象集

我有一个具有多个布尔(和整数)属性的对象.我想创建一个具有许多不同属性的对象集合,以获得用于测试的良好数据集.

例如

public class A
{
     public int value {get; set;} //want to try beetween 0 and 5
     public bool foo {get; set;}
     public bool bar {get; set;}
     public bool boo {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

对于这个例子,我喜欢有一个6*2*2 = 24 elementw的列表,其中value= foo0/1/2/3/4/5 ,= true/false,bar= true/false,但boo始终为false.

我可以使用24行代码来做到这一点.但是它很多,如果我再增加一个bool,那么它的行数就会增加一倍.

我可能每个属性使用一个循环,但我不认为这是一个有太多嵌套循环的好方法.我也可以通过反思来做到这一点,但我认为这是太多的工作,不是吗?

我认为还有另一种方法可以做得更好,但我找不到它.

c#

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

在 cypress 中,测试中的拦截不起作用

我开始使用 cypress,我想做 2 个测试。一个用于验证如果我的 api 返回“false”时显示的内容,另一个用于验证如果我的 api 返回“true”时屏幕上显示的内容。我尝试做一个像这样的简单测试:

context('contextTest', () => {
  before(() => {
    cy.waitLoading();
  });
  beforeEach(() => {});

  it('false test', function() {
    cy.intercept('POST', '**/test/alreadySent', {
      fixture: 'test/alreadySent-false.json',
    }).as('alreadySent');

    cy.wait('@alreadySent');
    cy.get('[data-cy=alreadysent-button]');
  });
});
Run Code Online (Sandbox Code Playgroud)

但拦截不起作用,它总是返回真实的 api 调用。奇怪的是,如果我只是将代码放在 before() 中,一切都会按预期正常工作。

context('contextTest', () => {
  before(() => {
    cy.intercept('POST', '**/test/alreadySent', {
      fixture: 'test/alreadySent-false.json',
    }).as('alreadySent');

    cy.waitLoading();
  });
  beforeEach(() => {});

  it('false test', function() {
    cy.wait('@alreadySent');
    cy.get('[data-cy=alreadysent-button]');
  });
});
Run Code Online (Sandbox Code Playgroud)

但我需要更改下一个测试的截距,因此我想专门设置此测试的截距。

有可能吗,为什么我的第一个代码似乎不起作用?或者我应该在另一个文件上编写下一个测试,而在同一个文件上进行这种验证是一种不好的做法?

javascript cypress

4
推荐指数
1
解决办法
6701
查看次数

标签 统计

c# ×1

cypress ×1

javascript ×1

prisma ×1