基本上,我有我想测试的函数,我们称之为函数A,我想测试函数B是否在函数A中被调用,问题是函数B是通过一个已解决的承诺异步调用函数A的。这将导致sinon断言失败,因为测试将在函数B被调用之前完成!
下面是一个工作代码场景。
const sinon = require('sinon');
describe('functionToBeTested', () => {
it('someFunction is called', () => {
// spy on the function we need to check if
测试登录控制器的单元测试失败,即使代码可以工作。如果访问数据库失败,我需要测试状态代码500是否被写入。我使用sinon软件包来模拟findOne猫鼬的功能。
测试代码:
describe("Auth Controller - Login", function () {
it("should throw an error with code 500 if accessing the database fails", function (done) {
sinon.stub(User, "findOne");
此测试通过;即sinon表示存根实际上称为:
const sinon = require('sinon')
async function underTest (s){
promise1 = new Promise((yes, no)=>yes())
promise2 = new Promise((yes, no)=>yes())
Promise.all([promise1, promise2]).then(s.yes).catch(s.no)
}
async function test(){
s = {yes: sinon.stub(), no
我有一个esm项目,我正在尝试用ava,nyc和sinon进行测试。我已经成功地使用sinon监视console.log并报告它是否被调用,但是在另一组文件上,我觉得我在做同样的事情,我不能让它工作。我不知道是sinon还是ava,或者是什么问题。我做了一个测试repo here。当您运行npm run test时,它将失败并显示console.log未被调用,但您可以在输出的顶部看到一条记录的语句。我做错了什么? 谢谢!
我在用户中有以下代码:
import { redirectTo } from 'urlUtils';
export function create(user) {
api.postUser(user).then((response) => {
redirectTo(response.userUrl);
})
}
我有以下测试:
import * as api from 'api'
import * as user from 'user'
sinon.stub(api, 'postUser'
背景
我得到了一个通过套接字发送消息的小函数,我正在尝试使用mocha和sinon来测试它:
const myFun = socket => {
socket.emit("first", "hello World!");
//some random amount of time passes
socket.emit("second", "hello Moon!");
//other random amount of time passes
socket.emit("thi
使用Node,Sinon,Chai,proxyquire进行提取,并使用Mocha
为什么这个罪恶的间谍断言fooCallback1.should.have.been.called;没有被调用一次?我在源代码中看到console.log(fooCallback1)的callCount是1。
这是第一次,也是唯一的test...so,我不认为有理由重置间谍。
function setLight(...args) {
var request;
var lightNumber;
var alertName;
var callback1;
var callback2;
var
我试图使用带有ts节点的Mocha在TypeScript中为我的项目编写单元测试。当我使用sinon对异步函数进行间谍操作时,我无法通过测试。下面是我的代码
class MyClass {
async businessFunction(param): Promise<void> {
if (!param) //Validate the input
throw new Error("input must be valid");
// Then do my business
}
}
和单元测试
de
我很难为以下nodejs代码编写测试,这些代码使用了AWS和graphicsmagick。我还试图寻找一些例子,说明如何为async的waterfall方法编写测试,但没有任何明确的结果。
// dependencies
var async = require('async');
var AWS = require('aws-sdk');
var gm = require('gm').subClass({ imageMagick: true });
var util = require('util');
// get refer
我遇到了一个让我发疯的问题。 我正在尝试从我已经实现的方法中测试一个函数,该方法基于一些中间函数的返回应该有两个不同的结果。所以,我使用sinon来模拟一个中间函数返回值(实际上它会调用一个API),但问题是,第一个测试的模拟结果是正确的,但在第二个测试中,结果与我在第一个测试中指定的结果相同,而不是我试图执行的新模拟。 我正在恢复afterEach中的模拟,但它仍然不起作用。 我的代码如下: import * as exportedFuncs from './src/utilFuncs';
import assert from 'assert';
impo
这是我的密码。我想测试“to”方法,并用时间间隔验证名为this.obj.send的计数。
我的问题是,当我存根_fetchAllDatas的方法和解决。this.obj.send不能调用。当this.obj.send搬到外面的_fetchAllDatas。这是可以称为。
我该如何处理这个问题?谢谢~
var sinon = require('sinon');
class A {
constructor(obj){
this.obj = obj;
this.timer;
}
doing(){
this
我想测试node-schedule包中的scheduleJob。使用sinon useFakeTimers(),我可以跳过时间。不幸的是,我的调度程序似乎并不“相信”假时间。当我将调度器设置为1分钟时,它可以完美地工作,所以我知道它可以工作。我也试着在通话前一分钟设置假时间,也不起作用。
Sinon:
let clock = sinon.useFakeTimers(moment().toDate());
clock.tick(60*60*23);
和我的scheduledJob:
let job_2 = schedule.scheduleJob(new Dat