RecordGenerator tests are there!

I’ve finally managed to get those unit tests written, which I’m a tiny bit proud of. I’ve broken the deadlock of “can’t write more because I may break what works, but I can’t write tests because I don’t have the will to”.

Now that there were some tests, I could fix some bugs like #8 and finally support attribute parameters. When doing these things, I’ve tried a little Test-Driven Development: I wrote tests that should’ve passed and wrote and fixed code until it passed. However, because it required a little more thought and time than I had, I dropped GenerateCollectionMutators attribute parameter (and whole feature). It’s tracked under #11 and may be implemented in future.

Tests helped

Tests have proven to be very useful, as I’ve stumbled upon some regressions which I’d have not found myself. They were quickly fixed too. As for TDD, it was a good feeling to work from red tests to all-green and it really was satisfying to reach that step – then I could F5 into debugging and manually assert it works, and then commit and push with more certainty than ever.

I’ve also included enclosing types when generating partials – ’till now the were omitted and it caused generation of an invalid class in the namespace of the enclosing class. While on it, I’ve also redone file naming, to include those enclosing types, and also include arity of any type. Now that’s bulletproof and I can vouch for it. Until C# introduces some new way of declarin types, the generator will work for all cases.

Future: closer and farther

I’ve also gathered some ideas for future, like handling record hierarchy and generating nested Build structs which would allow for initializer-style syntax when modifying or creating records.

Now there are those finishing touches awaiting my attention:

  • create a nice, helpful and overall awesome readme for the project which also connects to:
  • write more documentation and Hot-to/FAQ/Setup tutorials;
  • set up continuous integration;
  • and finally, publish on NuGet.

Lately I’ve realized that it’s almost half-time of Get Noticed contest and I still haven’t started the actual GodMode project, nor have I finished the wham library which it’s meant to heavily use. It’s 7th week already and I’ve not even finished my little helper project which was meant to simplify generating records in wham library.

Well I plan to publish the generator tomorrow (completing all the other bullets before). Next up is to rearrange work plan for wham and finish it off in two weeks. I need to do that to have even a shot at making GodMode useful at the tiniest. All plans need to be stripped down-to-earth.

Written with StackEdit.

Leave a Reply

Your email address will not be published. Required fields are marked *