I'm writing unit test for the SlingModel for a project that uses AEM 6.1. Sling model check if the Page has a Tag or not in the Post construct method. During the test mocked a Page with json which contains the "cq:tags" property, however the mocked page returns 0 tags when page.getTags() called.
I ran into the same issue. in order to resolve Tags, they must exists under `/content/cq:tags/your/tag` or `/etc/tags` (legacy).
The Page#getTags implementation makes a call to TagManager#getTags which in turn tries to resolve the actual tag resource in the repo. Since you are testing in an AEM context, you have to load these tags in the appropriate location for the MockTagManager to resolve them.
What this means is that you need to load your tags into the AEM test context just like you've loaded your resources (via json).