Isolated unit tests are good when we are testing a class without depending on the integration of the framework that we are using. But when it comes to testing a class alongside the framework, then we need to use integration testing. In the integration test, we test the behavior of a class/function as a whole to ensure that it works cohesively with the framework.
In deep integration tests, we let the framework run all the classes, just like it would do when it runs in its environment (such as a browser). We might want to mock some classes and functions, but overall we let the framework do most of the heavy lifting for us.
Angular uses dependency injection to create different Angular components, and it does so by using @NgModule. For testing, Angular provides TestBed, which can be used to create a TestModule that emulates Angular's @NgModule...