Beginners' Guide to Writing Jasmine Tests in CoffeeScript
Start with src/Calculator.coffee:
class Calculator
constructor: ->
console.log "Instantiated new Calculator instance"
add: (num1, num2) ->
num1 + num2
subtract: (num1, num2) ->
num1 - num2
multiply: (num1, num2) ->
num1 * num2
divide: (num1, num2) ->
num1/num2
Now, spec/CalculatorSpec.coffee:
describe 'Calculator', () ->
calc = {}
beforeEach ->
calc = new Calculator()
it 'should be able to add two numbers', () ->
expect(calc.add 3,4 ).toBe 7
it 'should be able to subtract two numbers', () ->
expect(calc.subtract 32,18 ).toBe 14
it 'should be able to multiply two numbers', () ->
expect(calc.multiply 6,4 ).toBe 24
it 'should be able to divide two numbers', () ->
expect(calc.divide 32,8 ).toBe 4
it 'should be able to divide to zero and receive Infinity', () ->
expect(calc.divide 32,0 ).toBe Infinity
it 'should be able to divide to Infinity and receive zero', () ->
expect(calc.divide 32,Infinity ).toBe 0
Compile the CoffeeScript files to JavaScript by enabling bare. Otherwise, the code gets wrapped into a function call, which throws Jasmine off
$ coffee -cwb src/Calculator.coffee
$ coffee -cwb spec/CalculatorSpec.coffee
Finally, add the two compiled JavaScript files to the Jasmine runner, SpecRunner.html:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Jasmine Spec Runner v2.0.0</title>
<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="lib/jasmine-2.0.0/jasmine.css">
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="src/Calculator.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/CalculatorSpec.js"></script>
</head>
<body>
</body>
</html>Written by Levent Gurses
Related protips
1 Response
Hi!
Thank you!
It works for me now :)
over 1 year ago
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Coffeescript
Authors
Filed Under
Did you know?
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#