Since Arquillian is deploying an artifact to your container for you, it stands to reason that some level of module packaging problems can be validated by Arquillian. Since ShrinkWrap builds based on a programmatic structure, rather than using your Maven project's build structure, it may not be a 100 percent match for your tests compared to your real deployment. Of course, you can use some ShrinkWrap APIs to point to your already-created file and use that if you choose. This can include problems with your object definitions.
Since we are handling dependency injection, we can handle failures as a result of attempting to activate beans. This does take a slightly different approach; for one, you need to ensure that you work against instances and look ups against them rather than directly injecting beans. If you're not familiar yet with the Instance
object of CDI, it is a placeholder object that allows you to look up beans more dynamically–it allows you to...