2014-10-13 3 views
2

Итак, я пытаюсь справиться с испытанием углового, и я немного застрял ... Из того, что я прочитал (или что я понял из чего Я прочитал) ниже должен работать, но я получаю следующее сообщение об ошибке:угловой, инъекция зависимости кармы, отказ от приёма

Ошибка: [нг: areq] Аргумент «п» не является функцией, есть объект http://errors.angularjs.org/1.2.26/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20Object

app = angular.module("MyApp", ["ngMock"]) 
myService = null 

angular.module("MyApp").factory "myDependency",() -> 
    getSomething: -> 
    "awesome" 

angular.module("MyApp").factory "myService", (myDependency) -> 
    useDependency: -> 
    myDependency.getSomething() 

describe "myService", -> 
    beforeEach -> 
    module "MyApp", ($provide) -> 
     mockDependency = 
     getSomething: -> 
      "mockReturnValue" 

     console.log "providing" 

     $provide.value("myDependency", mockDependency) 

    inject (_myService_) -> 
     console.log "injecting" 
     myService = _myService_ 

    it "is there", -> 
    expect(myService).not.toBeNull() 
    expect(myService.useDependency()).toEq("mockReturnValue") 

Также стоит сказать, что в журнале появляется «поставщик», но «инъекционный» не

ответ

2

Ага! Я понял это!

module "MyApp", ($provide) -> 
    mockDependency = 
    getSomething: -> 
     "mockReturnValue" 

    console.log "providing" 

    $provide.value("myDependency", mockDependency) 
    return 

Это исправление ошибки! Я предполагаю, что если модуль что-то возвращает, он должен быть определенного типа. Если его нулевой, угловой игнорирует его. Потрясающие!

Смежные вопросы