Ich teste den Router und habe zwei Funktionen, und ich muss testen, ob die erste Funktion aufgerufen wurde und die zweite nicht. Es gibt Methode toHaveBeenCalled
aber es gibt keine Methode zum Testen, ob die Funktion nicht aufgerufen wurde. Wie kann ich das testen?
Ich habe Code wie folgt:
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?
});