継承とユニットテスト

継承を使っているクラスのユニットテストはどう書くのがいいのかと考えているのだけど、

class A;
class B extends A;
class C extends A;

というのがあって、これに対するユニットテストを書くときに、

  • class Aの機能は、class ATestでテストしたい
  • class Bとclass Cは、それぞれのクラスで実装している部分だけをテストしたい

普通、class Bがclass Aを所有している場合は、その部分をモックにしてしまえばいいだけなのだけど、スーパークラスの場合はモックにできない。
さて、どうするか?