Ich teste den Router und habe zwei Funktionen. Ich muss testen, ob die erste Funktion aufgerufen wurde und die zweite nicht. Es gibt eine Methode, toHaveBeenCalled
aber es gibt keine Methode, um zu testen, ob die Funktion nicht aufgerufen wurde. Wie kann ich das testen?
Ich habe folgenden Code:
var args, controller, router;
beforeEach(function() {
controller = {
foo: function(name, id) {
args = [].slice.call(arguments);
},
bar: function(name) {
}
};
spyOn(controller, "foo").and.callThrough();
spyOn(controller, "bar").and.callThrough();
router = new route();
router.match('/foo/bar/{{id}}--{{name}}', controller.foo);
router.match('/foo/baz/{{id}}--{{name}}', controller.bar);
router.exec('/foo/bar/10--hello');
});
it('foo route shuld be called', function() {
expect(controller.foo).toHaveBeenCalled();
});
it('bar route shoud not be called', function() {
// how to test if bar was not called?
});