在 Typescript 中为负面测试创建无效 JSON

create invalid JSON for negative test in Typescript

我发现很难绕过 TS(神奇的)静态类型来创建一些无效数据以输入到负面测试用例。

我正在尝试修复可以从客户端传递无效 JSON(值中的双引号)的错误。我已将其修复,但希望在单元测试中确定这一点。

所以我想调用一些无效的方法JSON来检查错误数据是否会被拒绝。

    postId: "1234",
    comment: "an invalid "comment"
  };

谁能帮我想办法写测试数据来复制无效的JSON?

//ts-ignore 

对我没有帮助。我知道我错过了一些明显的东西。 TIA

游乐场位于 https://codesandbox.io/s/competent-glitter-q8jn7

args 解析为 JSON 将始终计算为真,因为 JS 对象是 JSON 可序列化的。因此,您可以将函数修改为以下内容,它应该可以完成工作。

function acceptComment(args: MyBespokeMutationArgsType): boolean {
  if (!isJsonString(`{ "comment": "${args.comment}" }`)) return false;
  console.log("comment will be processed");
  return true;
}

说到传递无效输入,您可以使用模板字符串。

const input = {
  postId: "1234",
  comment: `valid "comment`
};