liveBook · Manning

End-to-end testing

As explained in Write Powerful Rust Macros

An end-to-end test evaluates the workings of an entire system using most or all of its real dependencies.

End-to-end testing evaluates an entire system with most or all dependencies real. It provides broad confidence that deployed code still works, especially in continuous delivery. section 6.6

Use end-to-end tests when isolated checks cannot prove that the complete system delivers its promised result:

  • Exercise more code and real dependencies than unit or integration tests, accepting greater execution cost. section 6.6
  • Treat brittleness and maintenance difficulty as practical costs; a suite is valuable only if it remains working. section 6.6
  • Use smoke tests as a narrower variant that checks a few important paths and detects severely broken deployments. section 6.6

Verifying an infrastructure macro

A macro that promises to create cloud resources needs more than tests of generated functions, structs, or enums. Run it in a separate project, use the AWS SDK to verify the resources, and clean them up afterward. A CI/CD pipeline combined with AWS Lambda can provide a realistic, inexpensive environment for this test. section 9.8

End-to-end tests complement rather than replace faster tests: unit tests remain appropriate for simple generation or transformation logic, while system-level behavior requires the broader check. section 9.8

How Write Powerful Rust Macros covers it

How deep it goes
Defines system-wide scope and trade-offs, then sketches AWS verification and cleanup without implementing a CI/CD test suite.
Examples
Uses deployment smoke paths and an infrastructure macro verified through the AWS SDK in CI/CD and AWS Lambda.
What it assumes
Assumes familiarity with unit tests, integration tests, macros, CI/CD, and cloud resources; distinguishes when broader testing is necessary.
What you can do after
Evaluate complete system behavior with real dependencies and diagnose whether deployment-critical paths remain functional.
How it connects
Contrasts unit testing and integration testing, and connects with smoke testing, continuous delivery, AWS SDK, and AWS Lambda.

Also explained in

Compare how 12 books explain end-to-end testing →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Write Powerful Rust Macros. The section links point to the parts of the book it draws on.