В дополнение к ответу SLaks я бы добавил, что то, что вы хотите сделать, является логически несовместимым.Утверждение должно использоваться для документирования условия, которое не может быть ложным. Если когда-либо возникает ложное условие, вы знаете, что у вас есть ошибка;цель утверждения - (1) как своего рода комментарий, который описывает читателя, что должно быть правдой на данном этапе в коде, и (2) средство отладки, которое сообщает вам, когда у вас есть ошибка.
Так как правильные утверждения в правильном коде никогда не стреляют, нет способа проверить срабатывание подтверждения .Предпосылка теста состоит в том, что он производит возможную конфигурацию вашего программного обеспечения и проверяет его правильность;но правильный код с правильными утверждениями никогда не имеет конфигурации, в которой срабатывает утверждение.
Похоже, вы используете Assert не для документирования того, что вы знаете, верно, носкорее то, на что вы надеетесь - это правда или обычно правда.Не используйте для этого утверждения.Если в программе есть какие-либо входные данные, которые приводят к нарушению утверждения, то вам нужно либо удалить утверждение, либо вызвать исключение, когда вы получаете недопустимые данные, чтобы утверждение никогда не увидело их.Утверждения предназначены для документирования того, что должно быть истинным , а не тем, что является правдой большую часть времени.
См. Также этот связанный вопрос:
Debug.Assert vsИсключение