Unit Testing

Comprehensive guide to unit testing Azu applications, endpoints, and components.

Overview

Unit testing in Azu focuses on testing individual components in isolation. This guide covers testing endpoints, request/response objects, and utility functions with Crystal's built-in testing framework.

Testing Framework Setup

Basic Test Structure

# spec/unit/endpoint_spec.cr
require "../spec_helper"

describe "UserEndpoint" do
  describe "#call" do
    it "returns user data for valid request" do
      # Test implementation
    end

    it "returns error for invalid user id" do
      # Test implementation
    end
  end
end

Test Configuration

Endpoint Testing

Basic Endpoint Test

Testing with Mock Data

Testing Different HTTP Methods

Request/Response Testing

Request Validation Testing

Response Testing

Component Testing

Live Component Testing

Utility Function Testing

Helper Method Testing

Database Testing

Model Testing

Repository Testing

Mocking and Stubbing

Service Mocking

Database Mocking

Test Data Factories

Factory Pattern

Test Organization

Test Structure

Test Naming Conventions

Running Tests

Test Commands

Test Configuration

Best Practices

1. Test Isolation

2. Descriptive Assertions

3. Test Coverage

Next Steps


Remember: Good unit tests are fast, isolated, and focused on a single unit of functionality.

Last updated

Was this helpful?