原创

Javaで属性メソッドをモックするにはどうすればよいですか?

温馨提示:
本文最后更新于 2024年04月12日,已超过 26 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

こんにちは、私は Java とモッキングの概念を初めて使用します。次のようなサービス層メソッドがあります。

@Override
public synchronized String joinTournamentUser(long id){

    if(!tournamentTimeOfTheDay){throw new NotEnoughCredits("Not In a Tournament Time. Come back again when tournament starts.");}
    if(alreadyInGame.contains(id)){ throw new NotEnoughCredits("Already In Game"); } //check if already in a tournament


     int all = 0; // => if this hits 5, means all 5 countries exist in hashmap and will be ready to start a match.
     for(int z =0; z < UserServiceImpl.Country.class.getEnumConstants().length; z++){
        if(map.containsValue(UserServiceImpl.Country.class.getEnumConstants()[z].countryName)){
           all = all +1;
        }
     }

     if(all == 5){//matched
          return "Match starting...";
     }else{
          return "Waiting for match to start...";
     }
}

この場合の単体テストはどのように書けばよいでしょうか。tournamentTimeOfTheDayImpl クラスに書かれた単純なブール値であることは理解しています。

みたいに笑ってもいいですか?

@Mock
boolean TournamentServiceImpl.tournamentTimeOfTheDay;

次に、テスト方法で、

when(tournamentTimeOfTheDay.isAccessed()).thenReturn(true);

alreadyInGame整数のリストについても同様です。サービスがチェックすることを決定したときにそれをモックしたい.contains()だから、trueを返したいと思います。テストメソッドでこれをモックするにはどうすればよいですか?

いくつかのリポジトリ メソッドがモック化されているのを常に見かけますが、このようなメソッド チェックを必要とするクラスのプロパティはどうですか?

正文到此结束
热门推荐
本文目录