Как мне тестировать методы REST в App Engine? - PullRequest
0 голосов
/ 06 декабря 2010

Я не нашел способа автоматического тестирования методов REST для моего приложения, в то же время используя методы setUp и tearDown для сохранения уникальности каждого теста.

gaetestbed дает мне чистое хранилище данных между тестами.И httplib2 позволяет мне легко вызывать методы REST и анализировать их ответы;но для того, чтобы сделать это, локальный экземпляр моего приложения должен работать на порту 8080 и вызывать каждый тест.Это устраняет цель обновления хранилища данных, похожего на gaetestbed, поскольку данные сохраняются между вызовами.

Я мог бы запустить и остановить сервер GAE в методах setUp и tearDown , но это кажется расточительным и отнимает много времени.Есть ли способ лучше?

Ответы [ 2 ]

3 голосов
/ 06 декабря 2010

Используя gaetestbed или ваш собственный код юнит-теста, такой как this , просто создайте экземпляры ваших классов-обработчиков напрямую, используя словарь mocked / fake environment, и вызовите методы (initialize () и get () / post ( ) / etc в случае веб-приложения) напрямую.

0 голосов
/ 06 декабря 2010

При выполнении функциональных тестов с использованием методов REST мы заканчивали тем, что писали вспомогательные вызовы, чтобы очистить внутренние кэши и заставить наш механизм синхронизироваться с базой данных.

Я не использовал gaetestbed, но я бы подумал, что вы могли бы очистить хранилище данных между тестами?

"Use case: develop and test locally with real data
Restore to: your local development server.
Once you have restored the data to your local development server, I would highly suggest that you take a backup of your datastore.
You can find your datastore files in a temporary folder on your local machine (e.g., on my Mac, it's /var/folders/bz/bzDU030xHXK-jKYLMXnTzk+++TI/-Tmp-/). To find the folder on your own machine, flush the datastore (./manage.py flush) and you will see the path to your datastore folder printed in the resulting output." 
...