Перейти к основному содержимому

240 записей с тегом "Тестирование"

Посмотреть все теги

· 6 мин. чтения

1. Обзор

Динамическое тестирование — это новая модель программирования, представленная в JUnit 5. В этой статье мы рассмотрим, что такое динамические тесты и как их создавать.

Если вы новичок в JUnit 5, вы можете ознакомиться с предварительной версией JUnit 5 и нашим основным руководством .

2. Что такое динамический тест ?

Стандартные тесты, помеченные аннотацией @Test , являются статическими тестами, которые полностью определяются во время компиляции. DynamicTest — это тест, созданный во время выполнения . Эти тесты генерируются фабричным методом, снабженным аннотацией @TestFactory .

· 5 мин. чтения

1. Обзор

Чаще всего настроек по умолчанию, предоставляемых Mockito для наших фиктивных объектов, должно быть более чем достаточно.

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

В предыдущем уроке мы узнали, как работать с мягкими моками . В этом кратком руководстве мы узнаем, как использовать некоторые другие полезные функции, предоставляемые интерфейсом MockSettings .

2. Имитация настроек

· 16 мин. чтения

1. Введение

1.1. Обзор

В этом посте мы поговорим о мокировании : что это такое, зачем его использовать и несколько примеров того, как мокировать один и тот же тестовый пример, используя некоторые из наиболее часто используемых мок-библиотек для Java.

Мы начнем с некоторых формальных/полуформальных определений фиктивных понятий; затем мы представим тестируемый случай, приведем примеры для каждой библиотеки и в конце сделаем некоторые выводы. Выбранные библиотеки — Mockito , EasyMock и JMockit .

Если вы чувствуете, что уже знаете основы насмешек, возможно, вы можете перейти к пункту 2, не читая следующие три пункта.

· 10 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим написание тестов с использованием поддержки фреймворка в Spring Boot. Мы рассмотрим модульные тесты, которые могут выполняться изолированно, а также интеграционные тесты, которые загружают контекст Spring перед выполнением тестов.

Если вы новичок в Spring Boot, ознакомьтесь с нашим введением в Spring Boot .

2. Настройка проекта

· 4 мин. чтения

1. Обзор

Очень распространенной потребностью в жизненном цикле проекта является настройка интеграционного тестирования. В этом руководстве мы увидим, как настроить этот сценарий с помощью плагина Maven Cargo.

2. Этапы сборки интеграционного теста Maven

К счастью, Maven имеет встроенную поддержку именно этого сценария со следующими фазами жизненного цикла сборки по умолчанию (из документации Maven ):

  • pre-integration-test : выполнить действия, необходимые перед выполнением интеграционных тестов. Это может включать в себя такие вещи, как настройка необходимой среды.
  • Integration-test : обработайте и при необходимости разверните пакет в среде, где можно запускать интеграционные тесты.
  • post-integration-test : выполнить действия, необходимые после выполнения интеграционных тестов. Это может включать очистку окружающей среды.

· 4 мин. чтения

1. Обзор

В этом коротком руководстве мы увидим, как запускать тесты TestNG из командной строки. Это полезно для сборок или если мы хотим запустить отдельный тест непосредственно во время разработки.

Мы можем использовать инструмент сборки, такой как Maven , для выполнения наших тестов, или мы можем запустить их напрямую с помощью команды java .

Рассмотрим оба подхода.

2. Пример обзора проекта

В нашем примере давайте воспользуемся кодом, содержащим одну службу, которая форматирует дату в строку:

public class DateSerializerService {
public String serializeDate(Date date, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
}

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим различные способы переопределения свойств в тестах Spring.

Spring на самом деле предоставляет ряд решений для этого, так что здесь нам есть что исследовать.

2. Зависимости

Конечно, чтобы работать с тестами Spring, нам нужно добавить тестовую зависимость:

· 4 мин. чтения

1. Обзор

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

В этом руководстве мы покажем, как протестировать фиктивный источник данных JNDI с помощью Spring Framework и библиотеки Simple-JNDI.

В этом руководстве мы сосредоточимся только на модульных тестах. Но обязательно ознакомьтесь с нашей статьей о том, как создать приложение Spring, используя JPA с источником данных JNDI .

2. Краткий обзор JNDI

· 4 мин. чтения

1. Введение

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

В этой статье мы рассмотрим Awaitility — библиотеку, предоставляющую простой предметно-ориентированный язык (DSL) для тестирования асинхронных систем .

С Awaitility мы можем выразить наши ожидания от системы в удобном для чтения DSL.

2. Зависимости

· 4 мин. чтения

1. Обзор

Давайте представим, что у нас есть тест для некоторого кода, который зависит от операционной системы и должен выполняться только в том случае, если наша тестовая машина работает в Linux. Если он работает на любой другой ОС, мы хотим, чтобы тест не провалился, а игнорировался во время выполнения.

Первый подход может заключаться в использовании нескольких операторов if для проверки этого условия с помощью свойств класса System . Это, конечно, работает, но у JUnit есть более чистый и элегантный метод.

В этом коротком руководстве мы рассмотрим, как мы можем условно запускать или игнорировать тесты в JUnit 4, используя класс Assume .

2. Предполагаемый класс