[kforge-dev] test case naming

Rufus Pollock rufus.pollock at okfn.org
Wed Oct 17 18:23:50 UTC 2007


John Bywater wrote:
> This is an issue I have raised in face to face meetings a number of
> times. I can't remember raising this in public before, so I will
> now....

John: I am quite happy for the tests to be converged to a standard 
naming convention though I have to say I don't think it is a very major 
issue! (More of a painting the bikeshed type issue even taking account 
of the consistency principle).

I hope you noticed this was demonstrated yesterday in that I followed 
the (uncommented) todo comment and changed the names in that file to 
have the Test prefix:

http://project.knowledgeforge.net/kforge/trac/changeset/1236

I think you may not have noticed this since today you added the comment 
back in (it is now redundant):

http://project.knowledgeforge.net/kforge/trac/changeset/1238

Anyway the main point is:

a) I've always agreed that it was fine to go for the prefixing. So we 
both agree hurrah!
b) I think we've also both agreed when it came up before that it was a 
very secondary matter compared to other things we needed to do 
(particularly given that having Test postfixes didn't break anything)
c) I am very happy to name all new tests in accordance with this 
convention and for you to rename as you see fit. (In fact on all my 
recent work on other projects I have used the Test prefix convention 
because this is required by py.test!)
d) Where the Test postfix was left in it was either because it was 
already there or it was being copied from somewhere else that had 
already (and I/you didn't notice).

> There are (approximately) three times more test cases named "Test +
> TestedClassName" than there are "TestedClassName + Test".
> 
> In the KForge source, I count 147 classes with the name 'Test'. Of
> these, only 34 are postfixed 'Test'. So that's 34 test cases that need
> to be changed to be conformal with the 113 test cases that are named
> with Test as a prefix.
> 
> Having called several times for convergence in this regard, I'm
> irritated that this divergence has continued, and astonished that it
> has continued to this extent.

I'm sorry this has irritated you to such an extent!

> My arguments for the change are:
> 
> 1. The consistency of the code is its most important aspect. I started
> writing the KForge Python unit tests, and as I started writing these
> unit tests with Test as a postfix. I certainly expected and have since
> requested this convention to continue as the norm.

And I'd been writing tests already with the 'Test' postfix already and 
probably continued to write some for quite some time. Some of this 
difference has continued. It can easily be corrected ...

> 2. The reason for prefixing rather than postfixing is simple emphasis:
> the most important thing about a test case class -- what requires more
> emphasis than anything else -- is that the class is a test case, and
> not a class-under-test. This emphasis needs reflecting in the class
> name. In the English language, words earlier in a sentence receive
> more emphasis. Therefore the best place for the word 'Test' is at the
> start name, and certainly before the name of the class-under-test.
> Considering whether the name is a verb or a noun is entirely spurious
> to this consideration.
> 
> Therefore, and as a matter of priority, I kindly request KForge
> developers who have so far overlooked this /de facto/ KForge style
> convention to review their KForge test case naming practice, to adjust
> it in conformance with the majority prefixing style, and to remedy the
> divergence to the coding style norms that have been introduced by
> editing any test cases they may have written with postfixes to be
> conformal with the majority usage.

I'm very happy for you to rename wherever you wish to and any new test 
cases I write will have a Test prefix.

~rufus




More information about the kforge-dev mailing list