Написание интеграционного теста ExpressionVisitor с Olingo / ODATA 4

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

#!/usr/bin/env python

import random

# create two million-element sets of random numbers
a = set(random.sample(xrange(10000000),1000000))
b = set(random.sample(xrange(10000000),1000000))
# a intersection b
c = a & b
# a difference c
d = list(a - c) 
print "set d is all remaining elements in a not common to a intersection b"
print "length of d is %s" % len(d)

Вышеуказанное работает в ~ 6 секундах секунд на моей пятилетней машине, и оно тестирует членство в больших наборах, чем вам нужно (если только я не понял вас). Большая часть этого времени фактически занята созданием наборов, поэтому у вас даже не будет этих накладных расходов. Тот факт, что строки, на которые вы ссылаетесь, длинны, здесь не уместен; создание набора создает хэш-таблицу, как объясняет agf. Я подозреваю (хотя, опять же, непонятно из вашего вопроса), что если вы можете получить все свои входные данные в набор до , вы проводите любое тестирование членства, это будет намного быстрее, в отличие от считывая его по одному элементу за раз, , затем проверяет наличие набора

1
задан Jérôme B 20 January 2019 в 12:28
поделиться

1 ответ

Когда дело доходит до модульных тестов , я бы сосредоточился на тестировании каждого метода фильтрации отдельно. Например, если visitBinaryOperator возвращает ожидаемое значение на основе ввода и т. Д.

Я не эксперт по именованию вещей, но я бы назвал ваш тест интеграционным тестом . Здесь я бы сосредоточился на тестировании FilterOption, подготовленном внутри теста. В исходном приложении Apache Olingo создаст это FilterOption, и эта часть (должна быть) протестирована в Olingo.

Когда я работал с Apache Olingo, я часто ссылался на его репозиторий , особенно на server-test и server-tecsvc . Чтобы проверить, как все проверено в самом Олинго.

Я бы посоветовал взглянуть на FilterValidator , так как он может быть полезен для вашего интеграционного теста.

0
ответ дан mat3e 20 January 2019 в 12:28
поделиться
Другие вопросы по тегам:

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