Developer adds expectations and promises to an action
(1) Can access these expectations in the executed block
(2) Adds class getter `expects_keys`
(3) Adds class getter `promises_keys`