We are often asked if we can test for honesty. In reality, it is not possible to truly design a test for honesty for the simple reason that any test needs two known groups to validate it. In this case, one group that is know to be honest and one that is known to be dishonest. The problem arises when you try to pick the honest group. How would we ever know that the honest group was actually honest? You would either have to take their word for it or follow their action over a very long period of time. Neither is practical.
This article takes on the social side of spotting dishonesty in a very interesting way. I think you will find it interesting.