Ответ 1
Символы подчеркивания - это удобный трюк, который мы можем использовать для ввода услуги под другим именем, чтобы мы могли локально назначать локальную переменную с тем же именем, что и служба.
То есть, если бы мы не могли этого сделать, нам нужно было бы использовать другое имя для локальной службы:
beforeEach(inject(function(APIEndpointProvider) {
AEP = APIEndpointProvider; // <-- we can't use the same name!
}));
it('should do something', function () {
expect(!!AEP).toBe(true); // <-- this is more confusing
});
$injector
, используемый при тестировании, может просто удалить символы подчеркивания, чтобы предоставить нам необходимый нам модуль. Это не делает ничего, кроме как повторно использовать одно и то же имя.