The Vimulator (GitHub: thoughtbot / vimulator, License: MIT) project by thoughtbot is a simulation of certain Vim features that provides a novel way to visualise how edits are made. In the blog post about Vimulator, George Brocklehurst describes the reasons behind its creation:
It doesn't implement everything -- George says around 40 Normal mode commands have been implemented. It's just enough to be able to demonstrate basic Vim usage effectively.
George also describes how he wrote tests for Vimulator -- he used macros to generate the commands to drive the unit tests in a predictable and accurate manner.
There are other thoughtbot resources for learning Vim at learn.thoughtbot.com.