Comparison
End-to-end testvsIntegration test
End-to-end test
you drove a real browser through the whole signup flow against a running server.
A test exercising the deployed system as a user does, in a real browser, against real or near-real services. It is the only kind that can prove a flow works, and it is slow, expensive and the most likely to be flaky. Keep a small number covering the paths that must never break, and push everything else down to cheaper layers.
Full entry →Integration test
you tested several components and the data layer together, with the network stubbed out.
A test covering a group of units working together — a form, its validation, and the request it makes — with the boundaries of the system faked. It catches contract mismatches between pieces, which is where most real bugs live. The boundary between this and a component test is fuzzy and arguing about it is rarely worth the time; the boundary that matters is whether a real browser and a real server are involved.
Full entry →