问题标签 [spying]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 Nodejs 而不是浏览器中执行测试时,茉莉花中的 Mock/Spy sessionStorage
我试图在茉莉花中窥探 sessionStorage 对象。我编写了以下代码来实现对真实 sessionStorage 的监视
但是在遇到错误后,sessionStorage is undefined
我突然意识到我是在 NodeJs 环境而不是浏览器上执行 jasmine 测试。
由于 NodeJs 全局上下文测试用例中没有名为 sessionStorage 的东西失败。
我必须在浏览器中单独运行此测试或完全忽略。
有什么方法可以将浏览器的全局window上下文模拟为 NodeJs 的global
我试图将 sessionStorage 添加到globalnodejs 中,但打字稿没有让我....
如何解决这个问题?
automation - 窥探蓝棱镜
我正在使用 SAP 模式来监视 SAP GUI 中的元素。
我想单击一个标签,其中标签将作为输入参数。
例如,如果我传递“客户”,则应单击客户标签。
但标签文本字段位于信息说明之下。由应用程序导航器捕获 - 信息说明已禁用
请建议。
sharepoint - Blue Prism 中 Sharepoint 的间谍活动非常缓慢
如果记录在列表中记录为 100-200,我有一个共享点,并且间谍活动效果很好。一旦记录增加到超过 500 条,间谍活动就会变得缓慢,并且需要一分钟以上的时间来进行间谍活动。我尝试使用 Path 属性并将 MatchIndex 设置为 1 的间谍活动。到目前为止,我已经尝试过 html 模式,看到这个之后,我对 AA 模式的间谍活动没有信心。有没有人遇到过这样的挑战,加快间谍活动的程序是什么,任何投入都会有所帮助。
amazon-ami - 蓝色棱镜 - 过程/对象元素“未连接”中的问题
我有一个使用业务对象的流程。它从流程转到对象页面以启动网站,然后返回流程,然后链接到与先前相同的对象中的另一个页面。当我运行它时,我收到“在‘登录’页面上的 WaitStart 阶段‘Wait11’中发生 AMI 错误 - 未连接”。我有一个等待阶段来检查元素是否存在
似乎当我在对象-进程-对象之间进行更改时,元素被分离是为了避免这种情况。如果我逐步完成该过程,我不会收到此错误。
blueprism - Blueprism 在导航阶段附加到窗口,但子索引不起作用
我正在 Blueprism 中的一个小项目上工作,在 mspaint.exe 上绘制一些示意图。由于 BP 允许我们在类似的附加应用程序之间切换,我想从 mspaint 的第一个窗口切换到第二个窗口。但是由于两者都没有以任何文件名保存,因此两者的窗口文本都是“无标题 - 绘画”。
在 Blueprism 中,当为一个 exe 打开多个实例时,它们都具有相同的窗口标题,无法附加到任何打开的实例。
尝试使用完全匹配或通配符匹配以及子索引选择(其中任何一个+导航阶段中的进程名称)进行附加,所有打开的实例都响应为真。我认为,exe(mspaint)没有给OS提供实例编号,以便BP可以识别它。
在导航阶段,给出子索引,给出异常:
“多个应用程序符合条件”。
如果标题相同并且无法获得子索引,那么附加窗口的常用方法是什么?有什么方法可以获得独特的窗口句柄并使用它?
javascript - AngularJS 上的 Jasmine:确保对间谍方法的调用次数
我有一个名为 的服务MessageBarFactory,有一个void 名为 的方法addAlert()。我有一个单元测试,我不希望调用该方法,所以我只是按如下方式监视它:
在我正在测试的代码库分支中,有两次连续调用此方法:
为了确保遵循该分支,我正在测试该方法是否已被“调用”两次:
但是我收到一条消息,其中还涉及我的其他一些间谍在同一服务的其他方法中,例如clearAlertByName:
现在,当然,我可以做类似的事情:
但这有点不自然,并且需要您还放入一个假函数,这会增加 spy 的运行时开销(这不是测试上下文中最重要的一点,但仍然如此)。
我想看看我是否在想这个错误:toHaveBeenCalledWithTimes()与 spyed on 方法不兼容?我认为这正是您可能想要监视方法的原因。我在这里想念什么?作为参考,我使用的是 Jasmine 3.1.0,不幸的是,这对于这个项目来说是不可协商的,它有一个很大的向后兼容性重点。

