I have a project where most of the challenges are to ensure software works correctly with flat text files outputted by several external systems.
Mangement made decision to introduce Agile and TDD as a particular implementation.
I found that mocking input from the flat files makes no sense because the main issue to resolve is exactly correct work with those particular files.
E.g. if output in external systems change the unit test must fail.
Unit-testing the code abstracted from the files makes very little sense and create very little business value (as the abstracted code will take lots of time to be abstracted and in the reality will produce a hundred one line methods).
Just want to reiterate - the challenge is to keep a tight tab on the software being able to work with flat files and TDD is to make this verifiable at any time.
What would be the suggestions? How this can be organised, defined, implemented?