Como injetar um controlador em uma diretiva ao testar a unidade
Eu quero testar uma diretiva AngularJS declarada assim
app.directive('myCustomer', function() {
return {
template: 'cust.html'
controller: 'customerController'
};
});
No teste, eu gostaria de injetar (ou substituir) o controlador, para que eu possa testar apenas as outras partes da diretiva (por exemplo, o modelo). ocustomerController
é claro que pode ser testado separadamente. Dessa forma, recebo uma separação limpa de testes.
customController
usando$provide
.Eu tentei configurarng-controller
na declaração de diretiva html usada no teste.Não consegui fazer nenhum deles funcionar. O problema parece ser que não consigo obter uma referência à diretiva até ter$compile
d. Mas após a compilação, o controlador já está configurado.
var element = $compile("<my-customer></my-customer>")($rootScope);