Как Вы тестируете асинхронный метод?

Используйте sample с drop:

n = 1068
# Do this first if you haven't already.
# df.compliance = df.compliance.map(pd.eval)
df_dropped = df.drop(df[df.compliance].sample(n=n).index)

Чтобы это работало, n должно быть строго меньше, чем отфильтрованный DataFrame.


Пример случайного удаления двух строк.

df.drop(df[df.compliance].sample(n=2).index)

   compliance  day0  day1  day2  day3  day4
1       False     7     4     8     3     2
3        True     5     3     9     6     2
17
задан Caged 4 May 2009 в 03:12
поделиться

2 ответа

Одним из лучших способов тестирования асинхронного и многопоточного кода является регистрация событий. Ваш код должен регистрировать события в интересное или полезное время. Часто одного события достаточно, чтобы доказать, что логика работает правильно. Некоторым событиям потребуются полезные нагрузки или другая метаинформация, чтобы их можно было связывать или связывать.

Это наиболее полезно, когда среда выполнения или операционная система поддерживают эффективный и надежный механизм обработки событий. Это позволяет вашему продукту отправлять с событиями в «розничной» версии. В этом сценарии ваши события включаются только тогда, когда вам нужно отладить проблему или запустить модульный тест, чтобы убедиться, что все работает правильно.

Наличие событий в розничном (производственном) коде позволяет тестировать и отлаживать на любой платформе. Это огромное преимущество перед отладочным или «проверенным» кодом.

Обратите внимание, что, как и утверждения, будьте осторожны, когда вы помещаете события - они могут быть дорогостоящими, если регистрироваться часто. Но хорошая новость заключается в том, что современные операционные системы и некоторые платформы приложений поддерживают механизмы событий, которые легко поддерживают десятки тысяч событий. Некоторая поддержка берет трассировку стека на выбранных событиях. Это может быть очень мощным, но обычно требует, чтобы символы были доступны в определенный момент времени - либо при регистрации, либо во время последующей обработки трассировки в целевой системе.

но обычно требуется, чтобы символы были доступны в определенный момент времени - либо при регистрации, либо во время последующей обработки трассировки в целевой системе.

но обычно требуется, чтобы символы были доступны в определенный момент времени - либо при регистрации, либо во время последующей обработки трассировки в целевой системе.

0
ответ дан 30 November 2019 в 12:20
поделиться

Асинхронные обратные вызовы часто требуют запуска цикла сообщений. Часто цикл сообщений останавливается после того, как обратный вызов был вызван в тестовом коде. В противном случае цикл просто ожидает следующих задач, и их не будет.

1
ответ дан 30 November 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: