【问题标题】:Unit testing a function that does not return anything in Javascript对在 Javascript 中不返回任何内容的函数进行单元测试
【发布时间】:2009-10-27 05:30:14
【问题描述】:

正如主题所建议的,我如何对不返回任何内容的函数进行单元测试(除了只返回的空检查)?

另外,我如何对一个也不返回任何内容的函数中的函数进行单元测试,特别是如果它们位于函数的最后几行?

这个问题背后的原因是我一直在尝试使用 Jack 和 JsMockito 来测试我的代码,它们都要求我提供某种似乎由代码中的函数返回的对象,因此我我不知道该怎么做。

谢谢。

编辑:

这是一个示例伪代码:

function myFunction()
{
    local var

    null check {
        return;
    }

    null check
    {
        return;
    }

    // points to another function
    function(param1);

    // points to a C# function
    function(param1, param2);
}

【问题讨论】:

  • 您可以发布您要测试的代码类型的示例吗?

标签: javascript unit-testing


【解决方案1】:

当然,您的功能必须对系统/程序产生一些影响或更改,可以在功能之外检测/比较。

如果它什么都不做 => 删除代码,你就不需要它了!

如果它是为了抛出错误,请尝试捕获它们(发出包含已知错误参数/条件的调用,然后查看它们是否被捕获。

【讨论】:

  • @lexu:我不是说死代码。来自 Java 背景,我看不到 Javascript 函数实际上返回任何东西,所以我在测试它时遇到了困难(也在尝试使用新语法)。
【解决方案2】:

您需要弄清楚函数的副作用是什么,然后测试它们是否发生。

上面的代码调用了另外两个函数。因此,您的单元测试将验证它们是否被调用,很可能是通过以某种方式模拟它们。

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多