Jasmine

Jasmine Sandbox

by Stepan Suvorov

HTML

<script src="http://pivotal.github.com/jasmine/lib/jasmine.js"></script>
<link rel="stylesheet" href="http://pivotal.github.com/jasmine/lib/jasmine.css">
<script src="http://pivotal.github.com/jasmine/lib/jasmine-html.js"></script>
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="jasmine.css">
  <script type="text/javascript" src="jasmine.js"></script>
  <script type="text/javascript" src="jasmine-html.js"></script>
</head>
<body></body>
</html>

JavaScript

function asynchFunc(value, callback) {
    setTimeout(function() {
        value++;
        callback(value);
    }, 500);
}

describe("Asynchronous specs", function() {
    var value, flag;

    it("async test", function() {

        runs(function() {
            flag = false;
            value = 0;
            asynchFunc(value, function(x) {
                value = x;
                flag = true;
            });
        });

        waitsFor(function() {
            return flag;
        }, "Message for timeout case", 750);

        runs(function() {
            expect(value).toBeGreaterThan(0);
        });
    });
});

var jasmineEnv = jasmine.getEnv();
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
    return htmlReporter.specFilter(spec);
};

window.onload = function() {jasmineEnv.execute();};