This task is based on branch refactor/vote-contract-tests, so anyone interested in refactoring test cases of Vote Contract need to checkout his branch from dev to refactor/vote-contract-tests. (Or create a new branch on your own repo based on this branch.)
Check project test/AElf.Contracts.AEDPoSExtension.Demo.Tests to know basically how to use TestKit AEDPoS extension.
Test case DemoTest (shown bellow) shows how a blockchain system works: choose some transactions then package them to a block, every new block is based on previous block.
By using XXStub, you can act like a specific user calling / sending a transaction to call a method of specific contract in test case. Also, you can use XXStub for generating transactions.
https://github.com/AElfProject/AElf/issues/1915