Springbootフレームワークでのテスト方法

1849 ワード

以下はspringbootプロジェクトにおけるpublicおよびprivateメソッドのjunitテストのメソッドのまとめです.
1.publicメソッドの個別テスト:
@Runwith(mockitoJunitRunner.class)

@springBootTest

public class xxx{

@spy

@InjectMocks

XXXXXservice  xxxservice;

@mock

 

@Test
public void test1(){

// 
Mockito.doAnswer(new Answer() {
            public Object answer(InvocationOnMock invocation) {
                Object[] args = invocation.getArguments();
                return "called with arguments: " + args;
            }
        }).when( ). ();
// 
when ( .  ( )).thenReturn ( );

      }
}

 
2.private(protectedメソッド)メソッドを単独でテストする:
@Runwith(springRunner.class)

@springBootTest

public class xxx{

@InjectMocks

XXXXXservice  xxxservice;

@mock

 

@Test
public void test1(){

Sample sample = new Sample();
Method method = Sample.class.getDeclaredMethod(" ", int.class,  2...);
method.setAccessible(true);
int n = 2;
int actual = ( り の )method.invoke(xxxservice,2, 2...);

      }
}

3.publicメソッドで呼び出されたprivateおよびpublicメソッドをMockする場合:
@Runwith(springRunner.class)

@springBootTest

public class xxx{

@AutoWired

XXXXXservice  xxxservice;


@Test
public void test1(){

new MockUp {
   @mock
   private String XXX(){
     return "";
   }

   @mock 
   public String xxx(){
     return "";
   }

   @mock 
   public Int xxx(){
     return x;
   }
  }.getInstance()

   AssertEqual(xxx, xxxservice.XXX());

   // mock 
   Mockup.teardown();
}

4.prameerのMock方法:
①汎用クラスをパラメータとする場合、例:User.java,Mockito.any(User.class)でいいです.
②stringをパラメータとする場合、Mockito.anyString()可;
③NULLをパラメータとする場合、Mockito.any()可(Mockito.any()は他の多くのタイプのパラメータにも使用できるかもしれません).
④intとInteger類、Mockito.anyInt();    Mockito.any(int.class) ?
以上はいずれも思い出の内容であり,偏差が生じる可能性があり,実際が主である.