If you search for best practices for page object model in automation tests, you will find that many people suggest not using verify commands in Page Object (PO) methods. However, there are no any details' explanation to the reasons. Even the post on ...

Markdown supported · ⌘↵ to post
Bullet No. 1: If you place verification functions in the Page object, They will still be used/called in the test layer.
You can either implement your assertions in the PO or in some utils folder. Both cases you still only call those methods in the test layer. So there's never a mixture of verifications functions in 2 layers.
Implementing verifications functions in the test layer is more bad practice. Bloated code which makes the tests difficult to read. Not really a PO issue.
Bullet No.2: I see verification functions in page object as an API's schema because when i access the PO i know these are the verification functions available to me on that page. Its more like an api schema, telling you what's available on that api.
Bullet No.3 A Page object verification is verifying something on a page. Not verifying a particular test. So you shouldn't have "verify for test01" in a PO, it should be "verify component01". Then use that verify in your test layer.