fluid-work IRC Logs-2008-04-30

[09:17:43 EDT(-0400)] * anastasia (n=team@142.150.154.105) has joined #fluid-work
[09:22:58 EDT(-0400)] * aaronlev (n=chatzill@pD9E4CABF.dip.t-dialin.net) has joined #fluid-work
[09:44:40 EDT(-0400)] * michelled (n=team@142.150.154.197) has joined #fluid-work
[09:45:39 EDT(-0400)] * theclown (n=theclown@142.150.154.101) has joined #fluid-work
[10:32:02 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[10:42:33 EDT(-0400)] * ecochran (n=ecochran@12.20.36.2) has joined #fluid-work
[10:43:03 EDT(-0400)] * davidb (n=davidb@142.150.154.101) has joined #fluid-work
[10:43:51 EDT(-0400)] * ecochran (n=ecochran@12.20.36.2) has joined #fluid-work
[13:42:22 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[14:26:28 EDT(-0400)] * aaronlev (n=chatzill@pD9E4CABF.dip.t-dialin.net) has joined #fluid-work
[14:33:54 EDT(-0400)] * EricDalquist (n=EricDalq@12.20.36.2) has joined #fluid-work
[14:43:22 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[14:56:29 EDT(-0400)] * aaronlev_ (n=chatzill@pD9E4E4B2.dip.t-dialin.net) has joined #fluid-work
[15:17:06 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[16:11:51 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[16:15:21 EDT(-0400)] <colinclark> anastasia: I just saw your keyboard-a11y commit.
[16:15:24 EDT(-0400)] <colinclark> Nice work.
[16:15:43 EDT(-0400)] <colinclark> Were there particular functions in the private namespace that you think need to be unit tested?
[16:15:44 EDT(-0400)] <anastasia> no problem, colinclark. The code was so nicely written, it was easy
[16:16:21 EDT(-0400)] <anastasia> oh - well, many. There is a lot of work happening in many of them, and without unit tests, it's difficult to track down what's broken
[16:16:41 EDT(-0400)] <colinclark> anastasia: How so?
[16:17:02 EDT(-0400)] <colinclark> It seems to me that the behaviour of the component is manifest in the public functions.
[16:17:14 EDT(-0400)] <colinclark> And are quite testable without needing to break encapsulation.
[16:17:59 EDT(-0400)] <michelled> colinclark: it's true that we can test through the public API but then it seems that 3/4 of the code will not have unit tests.
[16:18:33 EDT(-0400)] <colinclark> michelled: But it seems to me that the issue is test coverage...
[16:18:57 EDT(-0400)] <colinclark> Can we write reasonably fine-grained tests that cover the functionality of the code?
[16:19:35 EDT(-0400)] <michelled> well, I haven't looked closely at the code but on a quick glance it seemed like there was a lot going on in that file.
[16:20:07 EDT(-0400)] <michelled> Perhaps even accumulating like things into objects would help.
[16:22:11 EDT(-0400)] * colinclark (n=colin@12.20.36.2) has joined #fluid-work
[16:22:34 EDT(-0400)] <colinclark> Sorry, my battery died.
[16:22:46 EDT(-0400)] <colinclark> michelled: I'm just doing a bit of research...
[16:22:47 EDT(-0400)] <colinclark> http://binstock.blogspot.com/2007/05/unit-testing-private-variables-and.html
[16:22:50 EDT(-0400)] <colinclark> http://geekswithblogs.net/geekusconlivus/archive/2006/07/13/85088.aspx
[16:23:09 EDT(-0400)] <colinclark> "For my first trick, testing a private method. First rule of thumb: Don't do this. No really, Don't."
[16:23:45 EDT(-0400)] * davidb feels deju vu
[16:23:59 EDT(-0400)] <colinclark> Interesting thread on the c2 wiki: http://c2.com/cgi/wiki?UnitTest
[16:24:49 EDT(-0400)] <colinclark> michelled: But your point about splitting into separate objects makes sense. I think the code would be more understandable if the tabindex functions were in a separate container from the keynav stuff.
[16:24:54 EDT(-0400)] <colinclark> davidb: How so?
[16:26:25 EDT(-0400)] <michelled> colinclark: I haven't looked at these links yet. I'm trying to get some code done (tongue)
[16:26:53 EDT(-0400)] <davidb> colinclark: ancient history but just recalling a desire to test a private method (in java)... don't recall details
[16:26:53 EDT(-0400)] <michelled> but an example of where if we only test the public API we won't test the actual functionality is the uploader.
[16:26:57 EDT(-0400)] * colinclark is tempted to glarg. (tongue)
[16:27:36 EDT(-0400)] <colinclark> michelled: That points to a need to liberate the public API. (smile)
[16:38:24 EDT(-0400)] <davidb> colinclark: don't tell the americans
[16:38:55 EDT(-0400)] * colinclark laughs.
[16:43:05 EDT(-0400)] <colinclark> The Fluid Uploader seems to be quite a success. The Kuali Student guys are going to wrap it in GWT and use it. Now a Fedora team are also interested; they're using RoR and jQuery already, and thought our Uploader was cool,.
[16:44:06 EDT(-0400)] <anastasia> colinclark, that's great to hear!
[16:45:07 EDT(-0400)] <colinclark> anastasia: Yeah, it's great. I think we'll want to think hard about our priorities for new components, and hopefully we can hit this sweet spot of interest with future components, too.
[16:49:48 EDT(-0400)] * theclown_afk (n=theclown@142.150.154.101) has left #fluid-work
[16:52:58 EDT(-0400)] <michelled> colinclark: k, I got my commit in and I'm running for the bus but I did get a chance to skim your links.
[16:53:35 EDT(-0400)] <colinclark> michelled: Githen is here.
[16:53:44 EDT(-0400)] <colinclark> And he agrees with you about testing private methods!!
[16:54:04 EDT(-0400)] <michelled> (smile)
[16:54:34 EDT(-0400)] <michelled> To be clear, I don't think that every method needs to be tested, but to determine whether or not something needs testing I need to spend some time with it.
[16:55:18 EDT(-0400)] <michelled> If, like the advice in the links you sent, private methods do almost nothing and are immediately accessible through a public interface then I can see how you could get decent coverage.
[16:55:46 EDT(-0400)] <michelled> and more importantly, a pointer to what's actually wrong when a test breaks.
[16:56:35 EDT(-0400)] <michelled> I guess I've seen too many tests break that are very difficult to trace to the actual breakage. My favourites tests point me right to the problem when they break (smile)
[16:58:17 EDT(-0400)] <michelled> colinclark: my ride is leaving so I gotta run but I'd love to continue this conversation later
[16:59:10 EDT(-0400)] * michelled (n=team@142.150.154.197) has left #fluid-work
[18:06:49 EDT(-0400)] * EricDalquist (n=EricDalq@12.20.36.2) has joined #fluid-work