DIとMockとAOPの違いを簡潔に教えて頂戴>えろい方

俺の低レベルな理解力では次のように理解
DI:クラスを置き換えできる。
AOP:メソッドを追加したり置き換えできる。
Mock:DIと同じ?(DIをテスト用途で使うことに特化した呼び名?)

あとmixinってのもあるよね。
mixin=AOP?