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.

Reply via email to