f.e. I have 3 elements in my array, [1, 2, 3]. Now the shuffle method only has six outcomes here, so there is a real possibility that the tests might randomly fail even if the code is correct.
Dependency injection seems like a better approach if you want to test it, but it makes code not as nice to read.
Aye, that's true. I was kind of thinking about it in terms of generating an array of 10000 items!
Writing testable code is a trade off, but probably worthwhile in the long run. Dependency injection itself makes for more and more flexible code without a great deal of extra cognitive overload, so I am a big fan of it at the moment.
But wouldn't this fail at times?
f.e. I have 3 elements in my array,
[1, 2, 3]
. Now the shuffle method only has six outcomes here, so there is a real possibility that the tests might randomly fail even if the code is correct.Dependency injection seems like a better approach if you want to test it, but it makes code not as nice to read.
Trade-offs I suppose.
Aye, that's true. I was kind of thinking about it in terms of generating an array of 10000 items!
Writing testable code is a trade off, but probably worthwhile in the long run. Dependency injection itself makes for more and more flexible code without a great deal of extra cognitive overload, so I am a big fan of it at the moment.
This was a great talk from Sandy Metz that drove towards this point for a different reason too. I recommend a watch!