javascript - Jasmine beforeEach 未调用

标签 javascript unit-testing jasmine jasmine-jquery

刚开始使用 Jasmine 并按照 the Jasmine website 上的说明进行操作对于异步测试,我注意到从未调用过 beforeEach 函数。

知道为什么不吗?我在网络上的任何地方都找不到任何相关的提示。谢谢。

代码

代码非常简单:

describe("Testing test.php", function()
{
    it ("Gets me a coke", function()
    {
        var asyncResult = null;

        // query function with callback
        var queryFcn = function(callback)
        {
            console.log("queryFcn");
            $.get("be_com/test.php?coke")
            .success(function(data)
            {
                asyncResult = data.response;
                callback(); // notify jasmine
            })
            .error(function() { callback(); });
        };

        // Call ajax
        beforeEach(function(done) { 
            console.log('beforeEach');
            queryFcn(done); });

        // Evaluate response
        expect(asyncResult).toBe("a can of coke");
    });
});

HTML 同样简单:

<html>
<head>
<link rel="shortcut icon" type="image/png" href="../fe_com/js/lib/jasmine-standalone-2.3.4/lib/jasmine-2.3.4/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="../fe_com/js/lib/jasmine-standalone-2.3.4/lib/jasmine-2.3.4/jasmine.css">

<script type="text/javascript" src="../fe_com/js/lib/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="../fe_com/js/lib/jasmine-standalone-2.3.4/lib/jasmine-2.3.4/jasmine.js"></script>
<script type="text/javascript" src="../fe_com/js/lib/jasmine-standalone-2.3.4/lib/jasmine-2.3.4/jasmine-html.js"></script>
<script type="text/javascript" src="../fe_com/js/lib/jasmine-standalone-2.3.4/lib/jasmine-2.3.4/boot.js"></script>

<!--   FILES -->
<script type="text/javascript" src="testSpec.js"></script>
</head>

<body>
    <h2>Unit Tests</h2>
</body>
</html>

最佳答案

beforeEach block 不应位于 it block 内。

beforeEach 的想法是,它内部的代码在以下每个it block 之前运行。示例:

beforeEach(function () {
    // code in here will run 3 times
});

it('does first thing', function () {});
it('does a second thing', function () {});
it('does a third thing', function () {});

关于javascript - Jasmine beforeEach 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657626/

相关文章:

javascript - 在 javascript 中匹配 @(\w+) 并替换

javascript - 双击 Ionic 3

.net - Linq 单元测试套件

angular - 是否可以测试 Angular 2 中是否存在自定义指令属性?

javascript - JQuery Mobile CSS 在 Jelly Bean 中将整个页面变黑

javascript - 不清楚这个变量设置的作用 : var a = ! 1

c# - 无法在单元测试中加载文件或程序集“System.Web.Mvc”

unit-testing - 如何从 webstorm 文件观察器运行 "npm test"

javascript - 如何为我的代码编写测试用例

google-chrome - 引用错误 : expect is not defined