One of the most common examples of where we can drop an imperative verb prefix on a method name is in testing.

Unless a framework — such as pytest — requires 'test', such a prefix serves no useful purpose. It qualifies as a noise word, simply repeated what we already know from annotations/attributes, context, etc.

Stepping away from the imperative mood frees up the name (and the developer) to focus on naming a test more in terms of intent and purpose than as a directed action.

There are a number of popular naming styles that, for all their variation, often lead to names that contain the same information.

For example, the propositional style that I advocate (describe a property or behaviour using an indicative sentence), the BDD 'should' style, the more emphatic 'must' style, Roy Osherove's style (UnitOfWork_CallContext_Result), the long form Given-When-Then style, etc.

One thing they all share is fully informing the reader of what they can expect.

@kevlin I prefer Chris Stevenson’s TestDox, treat the object under test as the subject of a sentence. A basket:
- is empty when created
- returns items in the order they’re added
- totals up its items
- fails if you ask for an out of range item
- etc
@sf105 This style is an application of the propositional approach and satisfies the joke criterion
@sf105 @kevlin Whatever happened to the JetBrains TestDox plugin? I did briefly look at taking it on & updating it yonks ago but got distracted
@sf105 @kevlin <fires up computer to see if it’s been updated to the latest IDE… >