Je suis novice dans le concept des tests unitaires et j'essaie de mettre en place un test simple. La plate-forme sur laquelle je travaille exige que tout le JavaScript soit d'abord écrit en CoffeeScript. J'ai lu de nombreux exemples sur la façon d'y parvenir, mais mes tests échouent constamment.
Voici à quoi ressemble mon contrôleur :
'use strict'
angular.module('test')
.controller 'BasicController', ['$scope', '$location', ($scope, $location) ->
$scope.page.title = "Page Title"
$scope.$watch(
() ->
return $location.url()
)
]
Voici à quoi ressemble mon script de test :
'use strict'
describe "The Basic Controller", ->
beforeEach(module('test'))
scope = {}
location = {}
ctrl = {}
beforeEach inject ($rootScope, $controller, $location) ->
scope = $rootScope.$new()
location = $location
ctrl = $controller("BasicController", {$scope: scope})
it "should have the correct title", ->
expect(scope.page.title).toBe("Page Title")
J'utilise PhantomJS et le message d'erreur que j'obtiens est que l'objet scope.page.title n'est pas défini. Je ne comprends pas pourquoi cela se produit. Je donne à cette variable la valeur que le test doit vérifier et je ne comprends pas pourquoi il ne passe pas. Toute aide ou conseil serait grandement apprécié. Je ne sais pas si je fais une erreur dans ma syntaxe CoffeeScript (je préférerais coder en JavaScript) ou si j'oublie complètement quelque chose.