One issue with this approach is that refactoring can cause bugs or a change in behavior so you're risking bugs twice (initial write, then when doing refactor+teats). If you could guarantee the code was testable from the start then maybe this would help with the approach you outlined.
Build something useful, fast. Then refactor. Write tests when refactoring or fixing a bug, but not when prototyping.