JavaScript test framework for exercising an API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
testrunner.js

README.md

###JavaScript TestRunner###

This is a simple JavaScript test framework so I can exercise my API.

#####How it Works#####

Make a new testrunner

var tr = new TestRunner()

and a new test

tests['hello'] = new Test(function() { alert('hello') })

add the test to the testrunner

tr.add(tests['hello'])

and finally

tr.run()

#####Example#####

Put this file on your server and include the script into your code

<script src="/static/js/testrunner.js"></script>

After you include the script you are ready to add some tests

    // Make all ajax calls syncronous
    $.ajaxSetup({
        async: false
    }) 

    var tests = []


    tests['login'] = new Test(
    function() {
        $.post('/qliqserver/login', {'username':<username>, 'password':<password>},
        function(data) {
            appendRow('Login Test', data.success, 'Returns user id: ' + data.data.user.id );
        })
    })

    tests['inbox_messages'] = new Test( 
    function() {
        $.get('/qliqserver/inbox', 
        function(data) {
            appendRow('Inbox Messages', data.success, 'Returns: ' + data.data );
        })
    })

    tests['logout'] = new Test( 
    function() {
        $.get('/qliqserver/login', 
            function(data) {
                appendRow('Logout Test', data.success, 'Returns nothing');
            })
    })
    
    
    function appendRow(row_name, status, return_val) {
        $('tbody').append('<tr><td>' + row_name + '</td><td>' + status + '</td><td>' + return_val + '</td></tr>')
    }
  
// Botton to get the party started
    $('#clicky').click(function() {
            var tr = new TestRunner()

            // loop through test cases and add them to the TestRunner
            for (t in tests) {
                    tr.add(tests[t]);
            }       

            tr.run();               
    })  

Add in some HTML and you're set

<table>
    <thead>
        <tr>
            <td>Test Desc.</td>
            <td>Success</td>
            <td>Response</td>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>
<hr>
<button id='clicky'>clicky</button>

Maybe a little CSS

<style>
    .main {
        width: 800px;
        margin: 0 auto;
        padding-top: 50px;
    }
    
    .main table {
        width: 100%;
    }
    
    .main table tbody tr {
        padding: 2px;
        border-top: 2px;
    }
</style>