I have a very simple Mocha test (a copy of code that I have seen dozens of times)

When I run it, angular mocks appears to successfully load the injected resources and all their dependencies and successfully makes it to line 9. When I step into the $rootScope.new() function it goes directly to the catch block.

with e as "undefined is not a function"

I am not understanding what is going on here. The variable blockFns[i] is a function, or at least the Chrome debugger says it is. So I don't understand why the call to injector.invoke fails. Here is the stack trace.

You need to inject
$rootScopebefore you call$rootScope.$new()like so:Updated
Actually the issue was that it should be
$rootScope.$new()instead of$rootScope.new().