- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了很多测试,但我找不到解决问题的方法。简化一下,我有这个 Postman 测试脚本来验证 JSON 响应是否符合为此 API 定义的 JSON 模式:
const stockQuotesSchema = JSON.parse(pm.environment.get("schema"));
pm.test("Stock quote returns 200 OK", function () {
pm.response.to.have.status(200);
})
pm.test("Stock quote is JSON", function () {
pm.response.to.be.json;
})
pm.test("Stock quote response matches schema", function () {
const validationResult = tv4.validateResult(pm.response.json(), stockQuotesSchema);
pm.expect(validationResult.valid).to.be.true;
})
这是定义的 API 模式(简化):
{
"codexxx": "UNAUTHENTICATED",
"messagexxx": "token expired"
}
这是我在运行请求后得到的响应:
{
"code": "UNAUTHENTICATED",
"message": "token expired"
}
由于架构中不存在“代码”字段和“消息”字段,我希望获得 FAIL,但我总是检索到 True。
This is the Postman result image
我需要使用长 JSON 模式验证每个响应(我的意思是比上面的示例更大的模式)。任何想法?谢谢。
最佳答案
您可以强制执行建议(然后删除)banUnknownProperties
mode通过 validateResult
的附加参数,如 here 所述.例如:
const tv4 = require('tv4');
const schema = {
properties: {
codexxx: {
type: 'string'
},
messagexxx: {
type: 'string'
}
}
};
const invalidResponse = {
code: 'UNAUTHENTICATED',
message: 'token expired'
};
const validResponse = {
codexxx: 'UNAUTHENTICATED',
messagexxx: 'token expired'
};
const invalidRelaxedResult = tv4.validateResult(invalidResponse, schema);
const validRelaxedResult = tv4.validateResult(validResponse, schema);
const invalidStrictResult = tv4.validateResult(invalidResponse, schema, false, true);
const validStrictResult = tv4.validateResult(validResponse, schema, false, true);
console.log('Relaxed (invalid):', invalidRelaxedResult.valid);
console.log('Relaxed (valid):', validRelaxedResult.valid);
console.log('Strict (invalid):', invalidStrictResult.valid,
invalidStrictResult.error.message, invalidStrictResult.error.dataPath);
console.log('Strict (valid):', validStrictResult.valid);
哪些输出:
Relaxed (invalid): true
Relaxed (valid): true
Strict (invalid): false Unknown property (not in schema) /code
Strict (valid): true
validateResult
的第三个参数指定是否进行递归检查。目前还不清楚,但我相信默认值是 false(如上例所示)。
关于javascript - 使用 tv4 的模式响应始终有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52451840/
我为 Android TV 开发了一个应用程序并发布了。我想知道有多少用户直接在他们的电视上运行该应用程序以及有多少用户使用电视盒。 有没有办法以编程方式检测我的应用程序是否在 Android TV
有没有办法在我的 Android 应用程序代码中检测到这一点?我想区分“盒子类型”(例如 NSZGS7,不带显示器)和内置电视类型(NSXGT1,带显示器)googleTV 设备。是否有可用于此区分的
我想重新加载浏览片段中的一些行数据。 基本上,我想重置适配器数据,而不会在浏览片段中造成类似闪存的效果。知道如何做到吗? 类似于 ListView 中的notifyDataSetChanged()。
有没有办法获取与用户在设置 Google 电视盒时提供的邮政编码相对应的纬度和经度? 最佳答案 根据 Google 的 Christian Kurzke 在 AnDevCon II 上的演示,您使用:
我需要查看我的 androidTV 应用程序发出的后端 https 请求,但是,由于调用是“https”调用,我需要安装一个查尔斯证书(在我的 androidTV 上)以允许查尔斯解密它们。 如果有人
我的 HoneyComb 应用程序在平板电脑和 Google TV 上运行。我在我的设置片段中设置了发送电子邮件,但它返回“没有应用程序可以处理此功能”的错误。 如果没有可用的客户端 (createC
在 1080p 模拟器和智能电视 (nVidia Shield) 上,我只能获得 960x540 WebView。是否可以使用可用的整个分辨率? 最佳答案 使用 Android TV 的 HDTV 被
我正在使用 PlayFragment 在 AndroidTV 中播放视频。我想隐藏播放/暂停/快进/进度条等控件。 我该怎么做? 如果有人知道,请帮忙。我正在使用以下示例: [https://gith
我正在使用 PlayFragment 在 AndroidTV 中播放视频。我想隐藏播放/暂停/快进/进度条等控件。 我该怎么做? 如果有人知道,请帮忙。我正在使用以下示例: [https://gith
我想在我的 Android TV 应用中通过 URL 播放 MP4 视频。 我在示例代码 ( https://github.com/googlesamples/androidtv-Leanback )
我如何检测 Apple TV 上的节目? 我已经尝试检测屏幕数量: [[UIScreen screens] count] 但它仍然是 1。 我也试过听一个事件: [[NSNotificatio
运行新 Apple tvOS 操作系统(我认为是基于 iOS)的 Apple TV 的用户代理字符串是什么?他们是否将自己报告为“iOS”设备? 最佳答案 Apple TV 不支持 WebKit 框架
我想为 Android 和 iOS 创建视频流应用程序,它也需要在 Android 和 Apple TV 或至少在 Android TV 上运行。 最佳答案 2021 年 4 月更新 适用于 Andr
我使用 Leanback Library 开发了一个应用程序。该应用程序在 Sony Android TV 上运行良好。 但是当我在 play store 上成功发布应用程序时,当我在我的 Sony
我已成功打开 SSL/TLS 连接以进行配对,并已来回发送所有必需的消息。我在将 secret 发送到 GTV 时遇到了问题。出于某种原因,它通过发回状态为 BadSecret 的消息说我的 secr
我尝试将 ADB 命令从我的 Android 移动设备 (SGS5) 发送到我的 Android TV (Nvidia Shield TV)。我总是得到: error:device offli
任何人都知道如何实现标题中的问题?目的是避免在单击标题后导致标题栏消失的动画,因为 Leanback 应用程序会放大行项目。 setHeadersState BrowseSupportFragment
我正在尝试弄清楚如何通过软件命令而不是 Remote 上的按钮触发 Google TV 中的画中画功能。据我所知,目前 API 中没有任何内容可以让我执行此操作。所以,有两个问题: 有人尝试过破解来实
我有一个要求,当新版本可用时,我需要强制升级我的 Apple TV 应用程序。但与移动应用程序不同,AppleTv 没有 Safari 来在我的应用程序中打开 Web View 。我如何从我的 App
我们最近开始开发 Android TV,我们需要连接 charles 代理工具以简化开发过程。我们能够使用相同的 wifi 连接在电视上设置代理。 但我们无法在 Android tv 中安装 char
我是一名优秀的程序员,十分优秀!