小编Zen*_*rko的帖子

如何在 Cypress 中模拟 websocket 消息

在我的团队中,我们使用 Websockets 推送一些通知,然后更新应用程序的状态。我尝试测试 UI 中的更改,但实际数据是随机的,我必须模拟它。不幸的是,目前我还没有成功。我尝试使用 @lensesio/cypress-websocket-testing 插件,但我所能做的就是捕获真实数据并检查它是什么。

有没有办法在 Cypress 中模拟 websocket?我希望我的模拟服务器发送消息,该 UI 将显示在浏览器中,并且 Cypress 将断言它是否为真。类似 websocket 的 cy.route 之类的东西。

testing websocket reactjs cypress

7
推荐指数
0
解决办法
1064
查看次数

打字稿:对象键的联合类型不能用作此对象的键

我有一个用一个参数调用的函数。这个参数是对象。这个函数正在返回另一个对象,其中一个属性是传递给函数对象的值。当我尝试使用 obj[key] 表示法检索对象的值时遇到问题。

我确实理解,该密钥必须是正确的类型才能像这样使用。我不能使用简单的键作为字符串,如果在界面中我没有 [key: string]: any。但这不是问题。我的键是作为传递对象键的字符串的并集:'user' | “姓名”等

interface Twitter<T> {
  name: T;
  user: T;
  sex: T extends string ? boolean : string;
}
interface Facebook<T> {
  appName: T;
  whatever: T;
  imjustanexapmle: T;
}

type TwFbObjKeys = keyof Twitter<string> | keyof Facebook<string>
Run Code Online (Sandbox Code Playgroud)

我的函数如下所示:

public static getArrayOfObjects(
        queryParameters: Twitter<string> | Facebook<string>,
    ) {
        const keys = Object.keys(queryParameters) as TwFbObjKeys[];
        return keys.map((paramId) => ({
            paramId,
            value: queryParameters[paramId],
        }));
    }
Run Code Online (Sandbox Code Playgroud)

我希望,使用 paramId 类型为:'name' | '性' | '应用程序名称' | ...作为具有此键的对象的键,不会引发错误。但不幸的是我有错误:

TS7053:元素隐式具有“任何”类型,因为“名称”类型的表达式 …

typescript

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

标签 统计

cypress ×1

reactjs ×1

testing ×1

typescript ×1

websocket ×1