Widget tests should cover the main use cases in your app. They test the UI and logic, but don't need to be granular unit tests. The important things are
- You have good code coverage. 90% + is usually a good indicator the main use cases are covered
- The tests cover the full app - not isolated components
- Tests run as integration tests on the target platforms
Most state management approaches are fine. The important thing are:
- The codebase chooses one and uses it consistently
- There is a separation of concerns (presentation, business, and infrastructure).