don't even get me started on the "basic editor" versus IDE war; that's a topic that 100% of the time grinds my gears
don't even get me started on the "basic editor" versus IDE war; that's a topic that 100% of the time grinds my gears
From that point of view, a developer has what they need to move forward with TDD (or any other process of their choosing).
I write my JVM tests mostly using Spock[1] as it's absolutely great at letting me specify, and ecouraging me to do so, as much context as I can.
It may look something like this (this example is loosely based on Spock using Geb[2]):
@Narrative('''
Users can choose to authenticate using method A or B.
This test makes sure that users can choose one or the other, go back and
change their decision later, and complete the procedure with either method.
''')
class AuthenticationMethodsSpec extends Specification {
def 'Users can choose method A'() {
given: 'the user goes to the login page'
goTo(LoginPage)
when: 'the user chooses method A'
page.click('methodA')
then: 'the user goes to the method A login page'
at LoginMethodA
}
Error messages are great too... and the tests, at least when written as above, with actual contextual information everywhere necessary, are much better than the usual JUnit abominations you're likely to find in Java shops.It may look superficially similar to Cucumber, but it's IMO much better because it's just Groovy code (and I happen to really like Groovy, some people have trouble with it because it's "not exactly like Java"), no custom parsing of text-based stuff and other complex gimmicks.
I dunno why the TDD folks specifically get so zealot-y about it being the one-True Way™. I'm happy that they've found something that they like and are passionate about, but, damn... it seems like they missed the episode of Power Rangers where you learn that different people will like different things than you do, and that that's okay. They don't have to be "wrong" for you to still enjoy your TDD.