In this series: Part 1: Practical Railway-Oriented Pipelines in Ruby Part 2: User input, errors and metadata Part 3: Extending pipelines Part 4: Middleware Part 5: Testing pipelines Testing pipelines. Testing any complex workflow can be challenging. Composable pipelines can make it easier to use a “divide and conquer” approach to testing. 1. Unit test each step in isolation. Steps may or may not be complex, but their simple #call(Result) Result interface makes them easy to test.