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

如何测试函数是否未被调用?

曹季同
2023-03-14

我正在测试路由器,有两个函数,我需要测试第一个函数是否被调用,第二个函数是否被调用。有方法可以调用,但没有方法测试函数是否未被调用。我如何测试它?

我有这样的代码:

var args, controller, router;
beforeEach(function() {
    controller = {
        foo: function(name, id) {
            args = [].slice.call(arguments);
        },
        bar: function(name) {
        }
    };
    spyOn(controller, "foo").and.callThrough();
    spyOn(controller, "bar").and.callThrough();
    router = new route();
    router.match('/foo/bar/{{id}}--{{name}}', controller.foo);
    router.match('/foo/baz/{{id}}--{{name}}', controller.bar);
    router.exec('/foo/bar/10--hello');
});
it('foo route shuld be called', function() {
    expect(controller.foo).toHaveBeenCalled();
});
it('bar route shoud not be called', function() {
    // how to test if bar was not called?
});

共有1个答案

薄瑞
2023-03-14

使用not操作符:

expect(controller.bar).not.toHaveBeenCalled();
 类似资料:
  • 我在Apex中有一个触发器。如何编写检查触发器是否被调用的单元测试?

  • 问题内容: 对于测试,我使用jest和react-test-renderer。测试应该很简单,但是我很难找到合适的例子。我试图做这样的事情(通常我将功能保存在单独的文件中): utils.js utils.test.js 片段 const childFunction = jest.fn(); 绝对行不通。调用时,parentFunction的主体仅关心其自身的作用域。但是,如果我导入childFu

  • 问题内容: 给定一个功能: 您可以用两种方式来称呼它: 第一个返回30,第二个返回一个对象。 您如何检测 在函数本身内部 调用 该函数的方式 ? 无论您采用哪种解决方案,它都必须与以下调用一起使用: 当前所有解决方案都认为将该方法称为构造函数。 问题答案: 我认为[ES2015之前]您想要的东西是不可能的。函数内根本没有足够的信息来进行可靠的推断。 查看ECMAScript 3rd Edition

  • 我正在使用一个调用函数的API开发一个web服务器。这个函数的任务很繁重,并且会缓存结果。我的设计方式是,如果没有缓存,并且多个用户同时使用相同的参数调用此API,服务器只为第一个请求调用该函数一次,所有其他请求等待完成作业并从缓存返回响应。 我用这种方式写了一个测试: 我可以通过在这个沉重的函数中打印一个值来检查我的代码是否正常工作,并检查控制台,看看它是否只出现一次,但是如果这个函数被调用了更

  • 我有一个带有CSRF保护的NestJS后端和一个获取CSRF令牌的endpoint。在使用jest和supertest测试此endpoint时,我得到。 我的代码是这样的: 我相信这可能与测试本身有关,因为当外部客户端(我们的前端应用程序或邮递员)调用该endpoint时,该endpoint可以正常工作。它对超级测试不起作用。 有人知道为什么吗?多谢了。

  • 我试图编写一个单元测试,它需要确认是否调用了一个方法。我使用的是JUnit、Mockito和PowerMock。 因此,在这里,我的测试系统是。我正在运行这个测试: 这个例子只是实际代码的一个例子.... 我想做的是不可能的吗?还是我走错路了? 谢谢大家:)