File: javascript.rst

package info (click to toggle)
python-fudge 1.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 716 kB
  • sloc: javascript: 3,300; python: 2,537; makefile: 84; sh: 5
file content (56 lines) | stat: -rw-r--r-- 1,951 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

.. _javascript-fudge:

====================
Fudge For JavaScript
====================

Although `Ersatz <http://github.com/centro/ersatz/tree/master>`_ is a port of `Mocha <http://mocha.rubyforge.org/>`_ to JavaScript and that's pretty much what :ref:`Fudge <using-fudge>` is, I couldn't get Ersatz to work with one of my libraries because it uses Prototype.  So I started porting Fudge to JavaScript.  As of this writing it has only been partially implemented.

Install
=======

Download the :ref:`Fudge source distribution <fudge-source>` and copy ``javascript/fudge/`` to your webroot.  To use it in your tests all you need is a script tag like this:

.. code-block:: html
    
    <script src="fudge/fudge.js" type="text/javascript"></script>

If you want to run Fudge's own tests, then cd into the ``javascript/`` directory, start a simple webserver::

    $ python fudge/testserver.py

and open http://localhost:8000/tests/test_fudge.html  Take note that while Fudge's *tests* require jQuery, Fudge itself does not require jQuery.

Usage
=====

Refer to :ref:`using-fudge` in Python to get an idea for how to use the JavaScript version.  As mentioned before, the JavaScript port is not yet fully implemented.

Here is a quick example:

.. code-block:: javascript
    
    // if you had e.g. a session object that looked something like:
    yourapp = {};
    yourapp.session = {
        set: function(key, value) {
            // ...
        }
    }
    yourapp.startup = function() {
        yourapp.session.set('saw_landing_page',true);
    };
    
    // and if you wanted to test the startup() method above, then you could 
    // declare a fake object for a test:
    var fake_session = new fudge.Fake('session').expects('set').with_args('saw_landing_page',true);
    
    // patch your production code:
    yourapp.session = fake_session;
    
    // and run a test:
    fudge.clear_calls();
    yourapp.startup();
    fudge.verify();