РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
757 of 818 menu

Класс SimpleTestCase

Класс SimpleTestCase используется для создания простых тестов, которые не требуют работы с базой данных. Этот класс предоставляет множество вспомогательных методов для проверки различных аспектов кода. Основное отличие от TestCase заключается в том, что тесты наследника не оборачиваются в транзакции базы данных, что делает их быстрее для простых проверок.

Синтаксис

from django.test import SimpleTestCase class MyTest(SimpleTestCase): def test_something(self): # тестовый код self.assertEqual(1 + 1, 2)

Пример . Проверка строки

Давайте напишем тест для проверки строки:

from django.test import SimpleTestCase class StringTest(SimpleTestCase): def test_string_upper(self): res = "hello".upper() self.assertEqual(res, "HELLO") def test_string_contains(self): res = "Hello, World!" self.assertIn("World", res)

Результат выполнения тестов:

"Running tests..." ".." "OK"

Пример . Проверка исключений

Класс SimpleTestCase позволяет проверять выбрасывание исключений в коде:

from django.test import SimpleTestCase def divide(a, b): if b == 0: raise ValueError("Cannot divide by zero") return a / b class ExceptionTest(SimpleTestCase): def test_division_by_zero(self): with self.assertRaises(ValueError): divide(10, 0) def test_division_success(self): res = divide(10, 2) self.assertEqual(res, 5)

Пример . Проверка HTML

SimpleTestCase содержит методы для проверки HTML-строк:

from django.test import SimpleTestCase class HTMLTest(SimpleTestCase): def test_html_contains(self): html = "<div><p>Hello</p></div>" self.assertInHTML("<p>Hello</p>", html) def test_html_equal(self): html1 = "<div><p>Test</p></div>" html2 = "<div><p>Test</p></div>" self.assertHTMLEqual(html1, html2)

Результат выполнения тестов:

"Running tests..." ".." "OK"

Пример . Проверка JSON

Для работы с JSON-данными в SimpleTestCase есть специальные методы:

from django.test import SimpleTestCase class JSONTest(SimpleTestCase): def test_json_equal(self): json1 = '{"name": "John", "age": 30}' json2 = '{"age": 30, "name": "John"}' self.assertJSONEqual(json1, json2) def test_json_not_equal(self): json1 = '{"name": "John", "age": 30}' json2 = '{"name": "John", "age": 31}' self.assertJSONNotEqual(json1, json2)

Результат выполнения тестов:

"Running tests..." ".." "OK"

Пример . Использование метода setUp

Метод setUp выполняется перед каждым тестом и используется для подготовки данных:

from django.test import SimpleTestCase class SetupTest(SimpleTestCase): def setUp(self): self.data = [1, 2, 3, 4, 5] self.name = "Django" def test_data_length(self): self.assertEqual(len(self.data), 5) def test_name_upper(self): res = self.name.upper() self.assertEqual(res, "DJANGO")

Смотрите также

  • класс TestCase,
    который использует транзакции для изоляции тестов
  • класс TransactionTestCase,
    который полностью пересоздает базу данных перед каждым тестом
  • класс LiveServerTestCase,
    который запускает тестовый сервер для интеграционных тестов
  • декоратор override_settings,
    который позволяет временно изменять настройки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить