I am a second year Computer Science student currently on a placement and I am currently developing a Java EE application that collects meta data from several sources and then visualises the data. This is the first major programming project I have done. (Nothing like university with 200 lines of code for an assignment)
I am about half of the way through the development of this application and have learnt an incredible amount. One of those things is TDD. From learning this I have gained an understanding of how important testing is and how it can help speed up development.
The reason for the back story is to cover for my ignorance. My university hasn't taught it to me and it is non-existent at my work place. I am incredibly keen in making sure I follow best practice in everything I do and I would like to include it in my application as I feel it would bring many benefits.
The problems I have though, are:
- My application (like many I am sure) will contact several external sources. Take my message consumer for example. It will contact up to 3 remote restful interfaces and a database. The URLS of these apis are dynamic and are only accessible once the application has loaded the properties file (which has to be modified by the application user).
- I feel it would be difficult to retro-fit the tests on a system that hasn't been built in a TDD manner.
- I practically don't have time to retro-fit/ learn how to do advanced TDD with java EE applications.
- As it isn't practice at all in my work place I wouldn't be able to ask questions or be corrected on if what I was doing is best.
Should I just accept defeat on this project as I am too far in and going forward I should just enforce TDD on everything I can? (where it is practical of course).
I'm just concerned that any future potential employers might look at my work from this placement and think less of me because lack of good practice. (Not worried what the current company thinks as it isn't a thing and they are very happy with my project.)