Created
March 3, 2013 18:49
-
-
Save evangalen/5077594 to your computer and use it in GitHub Desktop.
AngularJS Starter with Jasmine unit testing integrated (for usage in "http://plnkr.co/")
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var app = angular.module('plunker', []); | |
app.controller('MainCtrl', function($scope) { | |
$scope.name = 'World'; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
describe('Testing a Hello World controller', function() { | |
var $scope = null; | |
var ctrl = null; | |
//you need to indicate your module in a test | |
beforeEach(module('plunker')); | |
beforeEach(inject(function($rootScope, $controller) { | |
$scope = $rootScope.$new(); | |
ctrl = $controller('MainCtrl', { | |
$scope: $scope | |
}); | |
})); | |
it('should say hallo to the World', function() { | |
expect($scope.name).toEqual('World'); | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html ng-app="plunker"> | |
<head> | |
<meta charset="utf-8"> | |
<title>AngularJS test</title> | |
<script src="http://pivotal.github.com/jasmine/lib/jasmine.js"></script> | |
<script src="http://pivotal.github.com/jasmine/lib/jasmine-html.js"></script> | |
<link href="http://pivotal.github.com/jasmine/lib/jasmine.css" | |
rel="stylesheet"> | |
<script src="http://code.angularjs.org/1.0.5/angular.js"></script> | |
<script src="http://code.angularjs.org/1.0.5/angular-mocks.js"></script> | |
<link rel="stylesheet" href="style.css"> | |
<script src="app.js"></script> | |
<script src="appSpec.js"></script> | |
<script src="jasmineBootstrap.js"></script> <!-- bootstraps Jasmine --> | |
</head> | |
<body> | |
<div id="container" ng-controller="MainCtrl"> | |
<h1>Hello {{name}}</h1> | |
</div> | |
<div id="HTMLReporter" class="jasmine_reporter"></div> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
var jasmineEnv = jasmine.getEnv(); | |
jasmineEnv.updateInterval = 250; | |
/** | |
Create the `HTMLReporter`, which Jasmine calls to provide results of each spec and each suite. The Reporter is responsible for presenting results to the user. | |
*/ | |
var htmlReporter = new jasmine.HtmlReporter(); | |
jasmineEnv.addReporter(htmlReporter); | |
/** | |
Delegate filtering of specs to the reporter. Allows for clicking on single suites or specs in the results to only run a subset of the suite. | |
*/ | |
jasmineEnv.specFilter = function(spec) { | |
return htmlReporter.specFilter(spec); | |
}; | |
/** | |
Run all of the tests when the page finishes loading - and make sure to run any previous `onload` handler | |
### Test Results | |
Scroll down to see the results of all of these specs. | |
*/ | |
var currentWindowOnload = window.onload; | |
window.onload = function() { | |
if (currentWindowOnload) { | |
currentWindowOnload(); | |
} | |
//document.querySelector('.version').innerHTML = jasmineEnv.versionString(); | |
execJasmine(); | |
}; | |
function execJasmine() { | |
jasmineEnv.execute(); | |
} | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* restore "body" styling that were changes by "jasmine.css"... */ | |
body { background-color: white; padding: 0; margin: 8px; } | |
/* ... but remain the "jasmine.css" styling for the Jasmine reporting */ | |
.jasmine_reporter { background-color: #eeeeee; padding: 0; margin: 0; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment