0
私は単体テストであるサンプルクラス "A"を持っています。私はクラス "X"の振る舞いを、私が私のユニットテストで指定した乱数を、生成された値よりも与えるように指示する必要があります。私はどのクラスを擬似すべきか分からず、抽象クラス "Y"から継承するメソッド "getGen()"を除いてXの動作を持たせる必要があります。私はやってみたいです。SOLIDの原理に従わないクラス(特に依存性注入)の部分的な嘲笑
また、私のコードを単体テストするために、クラスXの "getGen()"をオーバーライドするのはいかがですか?または私のコードはテスト不能ですか?
テストクラスA:
class A {
public Type method(Typ1 a) {
//do something
X x = new X(a, String a);
x.doSmething();
//do something?
}
}
クラスX:
final class X extends Y {
Typ1 t;
String x;
X(Typ1 t, String x) {
this.t = t;
this.x = x;
}
public void doSomething() {
int x = getGen().method(x);
//do something
}
}
抽象クラスY:
abstract class Y {
Obj getGen(){
return someInstanceOfObj;
}
}
のOBJクラス:
class Obj {
int method(){
return someNumber;
}
}
x.somethingは()voidを返す場合なぜ内部の行動を嘲笑したいのですか?クラスAをテストするつもりであれば、Xの内部構造は無関係です。たぶんクラスXとそのdoSomethins()メソッドの動作を実際にテストしたいのですか? –