This is high falutin’ theory.
Many user interfaces don’t have easily testable abstract interfaces, and user features are first tackled by expressing changes to a user interface.
You really have to jump through hoops to make the reality of coding meet the theoretical model.