Кому нужен этот промт и как он работает?
Данный промт предназначен для тестировщиков и разработчиков, которые работают с веб-фреймворками и хотят быстро и качественно написать автоматизированные тесты для обработчиков. Он позволяет генерировать полный набор тестов, разделённых по функциям, используя встроенные возможности выбранного фреймворка. Это значительно ускоряет процесс тестирования, снижает количество ошибок и соблюдает лучшие практики написания тестов.
Промт помогает решать задачу написания всех возможных тестов для конкретного обработчика, что улучшает надёжность и стабильность приложений. Используя его, можно автоматизировать рутинную работу и сосредоточиться на более сложных аспектах разработки.
Принцип работы промта: ему нужно указать название фреймворка и текст обработчика, после чего нейросеть сгенерирует только код тестов, разбитый по функциям и с использованием возможностей данного фреймворка.
Готовый к использованию промт
1 2 3 |
Вы тестировщик веб-фреймворка {{ framework }}. Вам необходимо написать все возможные тесты для приведённого ниже обработчика. Разделяйте тесты по функциям. Используйте максимально встроенные возможности фреймворка. Следуйте лучшим практикам. Предоставляйте только код тестов. Обработчик: {{ handler }} |
Как использовать промт и на что обратить внимание
Рекомендуется использовать промт с конкретным указанием веб-фреймворка, например, Django, Flask, Express, Ruby on Rails и прочих, чтобы получить корректный и релевантный код тестов. В поле {{ handler }}
необходимо вставлять полный и читаемый код обработчика, чтобы нейросеть понимала задачу и могла правильно анализировать функции.
Советы по использованию:
- Убедитесь, что код обработчика содержит все нужные детали (входные параметры, ожидаемые результаты) для создания комплексных тестов.
- Проверяйте, какие встроенные модули для тестирования поддерживает выбранный фреймворк, и акцентируйте на них генерацию кода.
- Не добавляйте лишний текст в ответ, чтобы получить максимально чистый и готовый к использованию код.
- Ожидайте, что для очень сложных или длинных обработчиков результат может потребовать дополнительной доработки вручную.
Ограничения:
- Если код обработчика неполный или содержит синтаксические ошибки, результат тестов может быть некорректным.
- Некоторые редкие или экспериментальные функции фреймворков могут не поддерживаться полностью.
- При генерации тестов на языках с динамической типизацией возможны вариации в покрытиях и деталях.
Примеры использования
Пример 1. Тесты для Flask-обработчика API запроса
1 2 3 4 5 6 7 8 9 |
Вы тестировщик веб-фреймворка Flask. Вам необходимо написать все возможные тесты для приведённого ниже обработчика. Разделяйте тесты по функциям. Используйте максимально встроенные возможности фреймворка. Следуйте лучшим практикам. Предоставляйте только код тестов. Обработчик: @app.route('/user/<int_user_id>', methods=['GET']) def get_user(user_id): user = User.query.get(user_id) if user: return jsonify({'id': user.id, 'name': user.name}), 200 else: return jsonify({'error': 'User not found'}), 404 |
Этот пример помогает автоматически создать тесты для обработчика получения пользователя по ID, проверяя успешный и неуспешный запросы.
Пример 2. Тесты для Express.js обработчика POST-запроса
1 2 3 4 5 6 7 8 9 10 |
Вы тестировщик веб-фреймворка Express. Вам необходимо написать все возможные тесты для приведённого ниже обработчика. Разделяйте тесты по функциям. Используйте максимально встроенные возможности фреймворка. Следуйте лучшим практикам. Предоставляйте только код тестов. Обработчик: app.post('/login', (req, res) => { const { username, password } = req.body; if(username === 'admin' && password === '1234') { res.status(200).send('Success'); } else { res.status(401).send('Unauthorized'); } }); |
Этот промт позволяет быстро сформировать тесты для проверки авторизации с правильными и неправильными данными.
Пример ответа нейросети
Для примера Flask-обработчика нейросеть может сгенерировать следующий тестовый код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import unittest from app import app class TestGetUser(unittest.TestCase): def setUp(self): self.client = app.test_client() self.user_id_exists = 1 self.user_id_not_exists = 9999 def test_get_user_success(self): response = self.client.get(f'/user/{self.user_id_exists}') self.assertEqual(response.status_code, 200) data = response.get_json() self.assertIn('id', data) self.assertIn('name', data) def test_get_user_not_found(self): response = self.client.get(f'/user/{self.user_id_not_exists}') self.assertEqual(response.status_code, 404) data = response.get_json() self.assertEqual(data['error'], 'User not found') if __name__ == '__main__': unittest.main() |
Примечание: результат примерный и может отличаться.
Итог: зачем нужен этот промт?
Этот промт экономит время и усилия тестировщиков и разработчиков: он автоматически создаёт подробные и структурированные тесты для любых веб-обработчиков, используя лучшие возможности выбранного фреймворка и следуя проверенным практикам. Это помогает повысить качество кода и ускорить разработку.
Основное преимущество: быстрая и качественная генерация полного набора тестов для веб-обработчиков