2

シナリオは次のとおりです。1 つのクラスでランダム データを生成し、それを同じクラスのメソッドの引数として使用します。別のクラスでまったく同じ値を使用するにはどうすればよいですか?

これが私のクラスの簡略版です:

public class A {
    @Test
    public void aMethod() {     
        RandomStringUUID ruuid = new RandomStringUUID();
        }
}

それで:

public class B { 
        @Test
    public void bMethod() {
        // Want to use ruuid , without instantiating RandomStringUUID 
                // as i dont want new values, i want the one from class A
        }
}
4

4 に答える 4

4

静的アプローチを使用します。

public class A {

     private final static RandomStringUUID ruuid = new RandomStringUUID();

     public final static RandomStringUUID getRuuid() {
         return ruuid;
     }

     @Test
     public void aMethod() {     
         RandomStringUUID ruuid = getRuuid();
     }
}

public class B { 
    @Test
    public void bMethod() {
         RandomStringUUID ruuid = A.getRuuid();
    }
}
于 2012-09-26T13:13:23.570 に答える
2

クラスAで変数をパブリック静的変数にします

public static RandomStringUUID RUUID = new RandomStringUUID();

ビートダウンの後、私は投票数に入ります

private RandomStringUUID uuid;

private createUuid() {
    uuid = new RandomStringUUID();  //Or any other way you create it
}

public static RandomStringUUID getRuuidForOtherClassesToCheck() {
    return ruuid;
}

OP の設計ルールを推測するのに十分な情報がないか、クラスからクラスに変数を取得する方法に関する単純な Java の質問です。:D

于 2012-09-26T13:10:15.130 に答える
0

AにBに値を与えさせる

public class B {  
    @Test 
    public void bMethod(RandomStringUUID ruuid) { 
    // Want to use ruuid , without instantiating RandomStringUUID  
            // as i dont want new values, i want the one from class A 
    } 
} 

または、@sicsが言ったように、AにBがアクセスできるようにしてもらいます

于 2012-09-26T13:21:44.380 に答える
0

ヘルパー クラスの使用をテストすることがあります。それはあなたの(テスト)ケースの解決策になる可能性があります。したがってA、値は提供されませんBが、両方とも 3 番目のクラスから同じオブジェクトを取得します。

public class TestHelper {

  private final static RandomStringUUID UUID = new RandomStringUUID();

  public static RandomStringUUID getDummyRandomStringUUID() {
     return UUID;
  }
}

public class A {
  @Test
  public void aMethod() {     
    RandomStringUUID ruuid = TestHelper.getDummyRandomStringUUID();
  }
}

(と同じB

テストの実行ごとに異なる UUID 値が使用されるため、テストを再現できないため、テストにはまだ疑問があります。すべてのテスト実行に使用される静的 UUID を定義することをお勧めします。

于 2012-09-26T13:25:50.600 に答える