26 Kasım 2018 Pazartesi

Mockito @Mock Anotasyonu

Giriş
Şu satırı dahil ederiz. Bu anotasyon ile Mockito.mock() metodunu kullanmaya gerek yok.
import org.mockito.Mock;
@Mock anostayonu ile işaretli mock nesnesin gerçek nesne içine vermek için iki yok var.
1. Mockito.initMocks(this) metodunu çağırmak
2. Gerçek nesnesi @InjectMocks olarak işaretlemek

Açıklaması şöyle.
The easiest way of creating and using mocks is via the @Mock and @InjectMocks annotations. The first one will create a mock for the class used to define the field and the second one will try to inject said created mocks into the annotated mock.

Örnek
Şöyle yaparız.
public class CheckOutControllerTest {

  @Mock
  private CheckOutService mockCheckOutService;
  ...
}
Örnek
Şöyle yaparız.
@RunWith(MockitoJUnitRunner.class)
public class PaidListTest {

  @Mock
  PaymentService paymentService;

  @Before
  public void setUp() {
    MockitoAnnotations.initMocks(this);
    mapperObj = new ObjectMapper();
    List<PaymentGetServiceDO> response = new ArrayList<PaymentGetServiceDO>();
  }
  @Test
  public void getPaidList() {
    List<PaymentGetServiceDO> response = null;
    try {
      response = paymentService.setPaidStatusList();          
      if(response != null && response.size() > 0){
        for(int i = 0; i < response.size(); i++){
          assertNotNull(response.get(i).getAgentcode());
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Hiç yorum yok:

Yorum Gönder