On Tuesday, December 4, 2012 12:35:09 AM UTC+1, Richtermeister wrote: > > I don't really see the problem with AOP and unit testing.. You still only > test your original class. > In addition you also test the Aspect in isolation. If both pass their > tests, it should be safe to assume that they will also work in conjunction. > > Similarly, when you write a class that dispatches events, all you can test > for is that events are being dispatched correctly.. you can't test for > whether the handler messes up. > > I for my part would love some AOP support, primarily to add logging and > potentially transaction handling, in my case. > Great to see that this is already possible. Perhaps all that is needed at > this point is an easy way to integrate the Go! library into Symfony > (service tags, etc). > > Daniel > > Daniel,
I agree with that. Testing both your class and your aspect in isolation should be the way to go for "unit testing". How do we make a class unit testable: we inject all dependencies instead of having them hardcoded. This must also be valid with AOP, and being abble to test a class without having to consider cross cutting concerns should then even ease UT. Testing a class together with its aspects is more a task for functional tests. Cheers, Victor > > On Monday, December 3, 2012 1:39:26 PM UTC-8, Larry Garfield wrote: >> >> On 12/3/12 1:36 AM, Victor Berchet wrote: >> > On 12/03/2012 08:26 AM, Larry Garfield wrote: >> >> Be very careful with that. AOP is a flame thrower; very powerful, but >> >> can also burn you quite badly. If you're not extremely careful, it >> >> can make effective unit testing next to impossible. >> > Larry, could you please give more details on why it could made >> > "effective unit testing next to impossible" ? >> > >> > Cheers, >> > Victor >> >> Disclaimer: The only AOP system I've worked in is Drupal, so my >> perspective is somewhat skewed. I've already read about how AOP has >> been implemented in some .NET systems, which is where the rest of my >> knowledge comes from. I do not claim to be an expert on the subject. >> >> Basically, though, adding an aspect implicitly to a class means that you >> don't know what aspects have been added, which means you don't have >> complete control over your environment, which means you cannot carve out >> a "unit" to test. (This is one of the key problems keeping most Drupal >> from being properly unit testable.) >> >> If you add an aspect to an object explicitly, then I really don't see >> how it's any different from EventDispatcher. >> >> The line between AOP and events is, in my understanding, somewhat fuzzy >> to begin with. >> >> --Larry Garfield >> > -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony developers" group. To post to this group, send email to symfony-devs@googlegroups.com To unsubscribe from this group, send email to symfony-devs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-devs?hl=en