Re: [PATCH 3/6] t5516 (fetch-push): introduce mk_test_with_name()
From: Jeff King <hidden>
Date: 2016-06-15 22:56:27
On Wed, Mar 20, 2013 at 11:41:57AM -0700, Jonathan Nieder wrote:
Ramkumar Ramachandra wrote:quoted
Jonathan Nieder wrote:quoted
quoted
I dunno. The helper functions at the top of this test are already intimidating, so I guess I am looking for a way to avoid making that problem worse.[...]quoted
My patch does not make the situation worse in any way:Um, yes it does. It adds another function to learn to an already intimidating list.
Personally I do not find the set of helper functions intimidating. I
tend to read the tests in a top-down manner: a test is interesting
(usually because it fails), and then I want to see what it is doing, so
I look at any functions it calls, and so forth.
What I usually find _much_ harder to debug is when there is hidden state
leftover from other tests. So even though it is longer to write, I would
much rather see:
test_expect_success 'check that frob only affects foo' '
set_state_of foo &&
set_state_of bar &&
git frob &&
check_state_of foo &&
check_state_of bar
'
than for the test to assume the state of "foo" or "bar" prior to the
test. And I think helper functions can help make writing those sorts of
pre-conditions more reasonable (and without looking too hard, I think
t5516 does an OK job of that).
Related to that is when the helper functions operate on hidden state. In
this instance, we have tests that do things like:
mk_empty &&
git push testrepo refs/heads/master:refs/remotes/origin/master
and as a reader I say "wait, what's in testrepo?". I can follow mk_empty
and see that it hardcodes testrepo, but it is even better if the
function and its arguments are named in a way that I don't have to. So
even though it is more typing, I would argue that:
mk_empty testrepo &&
git push testrepo ...
is better, because the test script is more readable as a unit.
None of this is that huge a deal to me (and yet I seem to have written a
page about it :) ), but I figure while we are bikeshedding about test
style...
-Peff