当前位置: 首页 > 知识库问答 >
问题:

假货不是间谍

毋宏茂
2023-03-14

所以我有一个调用https请求的方法。我已经成功地在其他测试中中断了调用,但是这个测试打败了我,因为它根本不起作用。

在我的beforeach中,我创建存根,在我的afterEach中,我执行存根还原

在测试中,我创建了四个存根调用。

存根。onCall(0)。调用标记((arg1、arg2、arg3、cb、arg5)=

然后在我的ACT语句之后,我尝试断言存根是用正确的参数调用的

sinon.assert.calledwith(stub.firstCall, blah, blah, blah,sinon.match.anyblah)sinon.assert.calledwith(stub.secondCall, blah, blah, blah,sinon.match.any,"blah","blah")sinon.assert.calledwith(stub.thirdCall,"blah","blah","blah",sinon.match.any"blah")sinon.assert.calledwith(stub.call(3),"blah","blah",废话,sinon.match.any废话

不幸的是我的测试现在报告

假不是间谍

我有一个控制台。在我的测试代码中登录,他们报告正在调用我的存根。

调用console.log(stub.call计数)返回1而不是4

如果我评论除了第一sinon.assert测试通过。

所以我的问题是我做错了什么

我将在下面发布我的完整设置

`描述(‘更新Redis’,()=

    beforeEach(() => {
            stub = sinon.stub(apiInterfaces, 'jsonHttpRequest')
    })

    afterEach(() => {
            sinon.restore()
    })

    it("Should update workers balance, paid ,coin:payments:all and coin.payments.workers:address", () => {
            //ARRANGE
            let error = null

            const endpoint = '/transactions/prepare/advanced'
            const endpoint2 = '/transactions/send/prepared'
            stub.onCall(0)
                    .callsFake(function (host, port, data, callback, path) {
                            return callback(null,  {"transactionHash": "396e2a782c9ce9993982c6f93e305b05306d0e5794f57157fbac78581443c55f","fee": 1000,"relayedToNetwork": false})
                    })
            stub.onCall(1)
                    .callsFake(function (host, port, data, callback, path) {
                            return callback(null, null)
                    })
            stub.onCall(2)
                    .callsFake(function (host, port, data, callback, path) {
                            return callback(null, {"transactionHash": "396e2a782c9ce9993982c6f93e305b05306d0e5794f57157fbac78581443c55f","fee": 1000,"relayedToNetwork": false})
                    })
            stub.onCall(3)
                    .callsFake(function (host, port, data, callback, path) {
                            return callback(null, {
                                    "transactionHash": "396e2a782c9ce9993982c6f93e305b05306d0e5794f57157fbac78581443c55f"
                            })
                    })

            let callback = () => {return}
            //ACT
            coin.processPayments(balances, minPayoutLevel, callback)
            console.log(stub.callCount)
            sinon.assert.calledThrice(stub.jsonHttpRequest)
            sinon.assert.calledWith(stub.firstCall, config.wallet.host, config.wallet.port, '{"destinations":[{"amount":12000,"address":"TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4w"}],"feePerByte":2,"unlock_time":0,"mixin":3}', sinon.match.any, endpoint1)
            sinon.assert.calledWith(stub.secondCall, config.wallet.host, config.wallet.port, '396e2a782c9ce9993982c6f93e305b05306d0e5794f57157fbac78581443c55f', sinon.match.any, endpoint1, 'DELETE')
            sinon.assert.calledWith(stub.thirdCall, config.wallet.host, config.wallet.port, '{"destinations":[{"amount":11000,"address":"TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4w"}],"feePerByte":2,"unlock_time":0,"mixin":3}', sinon.match.any, endpoint1)
            sinon.assert.calledWith(stub.call(3), config.wallet.host, config.wallet.port, '{"transactionHash":"396e2a782c9ce9993982c6f93e305b05306d0e5794f57157fbac78581443c55f"}', sinon.match.any, endpoint2)
    })
    })

}) `


共有1个答案

乐宜民
2023-03-14

不要使用sinon或mocha,只需使用一个名为Jest的高得多的测试框架即可。

 类似资料:
  • 买了个摄像头,说是philips的品牌。 插入电脑后,查看usb设备,得到 lsusb | rg cam Bus 001 Device 005: ID 0c45:6366 Microdia Webcam Vitade AF VID 号是0C45 ,美国的一家公司Microdia PID 号是6366 ,也是美国的品牌Webcam Vitade AF 完全没有飞利浦的影子,这是假货吧?

  • 我正在尝试在ios上实施Admob插播广告。 这是我到目前为止所拥有的,这是我第一次接触目标-c,所以请善良。 在玩家死亡并单击重新启动按钮后,我在游戏中调用ShowAd()。目前,\u interstitalad。isReady不会像真的那样回来。 这是我开始使用的文档https://developers.google.com/mobile-ads-sdk/docs/admob/advanced

  • 本文向大家介绍用php+ajax新建流程(请假、进货、出货等),包括了用php+ajax新建流程(请假、进货、出货等)的使用技巧和注意事项,需要的朋友参考一下  对管理者来说,电脑操作的请假流程要比人工请假流程的效率高出很多,那么如何新建这个流程呢? 首先:需要明确需要操作哪些流程? 其次:每一个流程需要那些人员来执行? 最后:执行该流程人员的顺序是什么?  第一步:需要三张表,分别是:user表

  • 这是一篇加密货币的入门文章,是写给没有接触过比特币、加密货币的小伙伴的入门指南,接下来的内容,都将与加密货币相关。 前言 “加密货币就是货币”听起来挺“白痴的”。想想背后的意思,言外之意就是“加密货币可能不是货币”,就非常值得玩味了。事实上,在我接触的很多朋友当中,一开始认为后者的更多。包括我自己,也是经过探究一段时间之后,才认定这个结论的。 惯性定律不仅存在于物质世界,也存在于人类的认知世界。人

  • 我正在尝试使用函数。 而它应该打印$符号或美元? 我使用linux主机。 谢谢

  • 我对浮点数有一个基本的了解,并且正在阅读这篇文章,其中说: 0.1 0.2:这等于0.3,但在浮点数中:为false。这是因为0.1、0.2和0.3不能精确地表示在基2浮点数中。 根据浮点数的性质,这是正确的,但我编写了一个简单的程序来测试: 但是输出实际上是。以下是我的两个问题: > 我想发生的是,因为C使用了从四舍五入到五舍五入的模式,所以在四舍五入之后,它恰好是真的,我的理解正确吗? 如果我