Well, first it depends on the benefit. If it's a benefit the person has payed for, directly or indirectly, such as social security, medicare, or the first 26 weeks of unemployment, then the government has no business involving themselves in a person's private life.
Assuming though that we're instead talking about a benefit where the person is benefiting at the direct expense of the taxpayer, such as TANF, Medicaid, or Food Stamps, then there could be a place for testing. However, if someone tests positive, it makes far more sense to require that they enter treatment than simply cutting them off outright, and only losing the benefit if they fail to enter treatment or continue to fail drug tests.