Employers should not make explicit drug tests a prerequisite to getting a job. It’s an invasion of privacy, and it’s disrespectful. Human beings should have the freedom to do to their own bodies whatever they see fit, and they should not be treated like lab specimens.
The only thing that matters is whether a person can do a job, and there are more effective ways to measure that, like simulating a real work situation during/after the interview. If the concern is that a person on drugs would be impaired doing a job, then such a test should be able to measure that or it would not be an effective test. There are plenty of ways a sober, drug-free person could be too incompetent to do a job that no drug test can measure.