Edit in JSFiddle

describe('Testing a controller', function() {
    
    // chargement du module
    beforeEach(module("myApp"));

    var ctrl, scope;

    // injection du service $controller et du $rootScope, 
    // attention l'identification du service se fait sur son nom
    // il faut bien respecter $controller et pas écrire $controleur
    beforeEach(inject(function($controller, $rootScope) {
        // creation d'un nouveau scope
        scope = $rootScope.$new();
        // creation du controller avec le nouveau scope
        ctrl = $controller("listController", {
            $scope: scope
        });
    }));

    // test de la méthode addPatient()
    it('test add patient', function() {
        scope.patient = "test";
        scope.addPatient();
        // la chaine de caractère "test" est elle bien dans le dernier objet du tableau ?
        expect(scope.patients[scope.patients.length-1].name).toMatch("test");
    });

});

angular.module('myApp',[]).
    controller("listController", ["$scope", function($scope) {
        $scope.patients = [
            {name: "Jean Dupont"},
            {name: "Pierre Merti"},
            {name: "Jacques Egard"},
            {name: "Philippe Petit"},
            {name: "Albert Partin"}
        ];
        $scope.patient;
        $scope.addPatient = function() {
            $scope.patients.push({name: $scope.patient});
            $scope.patient = null;
        };
        $scope.removePatient = function(i) {
            $scope.patients.splice(i,1);
        };
    }]);

(function() {
    var jasmineEnv = jasmine.getEnv();
    jasmineEnv.updateInterval = 1000;

    var trivialReporter = new jasmine.TrivialReporter();
    jasmineEnv.addReporter(trivialReporter);

    jasmineEnv.specFilter = function(spec) {
        return trivialReporter.specFilter(spec);
    };

    $(function() {
        jasmineEnv.execute();
    });
})();