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 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.
