Sorry if I am being thick them. Looking at the example below how would you invoke doStuff() - and only fiXture() - in a unit test? On Mar 29, 2014 9:00 AM, "John Walker" <[email protected]> wrote:
> I think we are talking about the same thing. scope.doStuff() could be > tested from within a link function using Jasmine and the spy test methods. > > > On Sat, Mar 29, 2014 at 8:18 AM, Nikita Tovstoles < > [email protected]> wrote: > >> No thanks, John. I really was just curious about unit-testing directive >> methods like doStuff() as I described below. Although I >> understand Matjaž's point re: testing those implicitly by testing entire >> directive behavior, in more complex directives, it is often natural to >> split functionality into several smaller units and it'd be nice to be able >> to unit-test those without having to move them out of link() into a >> directive controller. >> >> -nikita >> >> >> >> On Fri, Mar 28, 2014 at 3:07 PM, John Walker >> <[email protected]>wrote: >> >>> You could have functions within an isolated scope that are passed in via >>> the '&' or just local functions directives would use. They just are not >>> tied to a controller. Is that something you need help with? >>> >>> >>> On Friday, March 28, 2014 9:55:12 AM UTC-6, Nikita Tovstoles wrote: >>> >>>> Ok thanks >>>> On Mar 28, 2014 8:48 AM, "Matjaž Lipuš" <[email protected]> wrote: >>>> >>>>> on isolate scope you don't assert scope values. but directive >>>>> behaviour. >>>>> so in unit test you trigger some event or sth. that calls doStruff and >>>>> assert expected result of doStruff. >>>>> >>>>> On Friday, March 28, 2014 4:25:01 PM UTC+1, Nikita Tovstoles wrote: >>>>>> >>>>>> Sorry, John, I am not sure the above quite does it. This may or may >>>>>> not matter, but I was thinking of a directive with isolate scope, ie: >>>>>> >>>>>> app.directive('foobar', function(){ >>>>>> return { >>>>>> restrict: 'E', >>>>>> scope: {}, >>>>>> link: function(scope){ >>>>>> scope.doStuff = function(){}; >>>>>> } >>>>>> }; >>>>>> }); >>>>>> >>>>>> how would you unit-test doStuff()? in your example, you're asserting >>>>>> on the same scope as was used to compile directive, but in this case >>>>>> scope >>>>>> is a child of that scope - how does one get at it? >>>>>> >>>>>> -nikita >>>>>> >>>>>> >>>>>> On Fri, Mar 28, 2014 at 7:33 AM, John Walker <[email protected]>wrote: >>>>>> >>>>>>> Sorry, i just realized you were asking about scope functions, not >>>>>>>>>> scope properties. If that doesn't give you what you need, let me >>>>>>>>>> know and >>>>>>>>>> i'll throw a function in the unit test. >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>> You received this message because you are subscribed to a topic in >>>>>>> the Google Groups "AngularJS" group. >>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>>>>> pic/angular/1yiCh41gb28/unsubscribe. >>>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>>> [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at http://groups.google.com/group/angular. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "AngularJS" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>> topic/angular/1yiCh41gb28/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/angular. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "AngularJS" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/angular/1yiCh41gb28/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/angular. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "AngularJS" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/angular/1yiCh41gb28/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/angular. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/1yiCh41gb28/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
