Hi I am trying to right test cases for a class in micronaut with JUnit. The class extends an abstract class AbstractShippingService
which is something like this:
@Singleton
public abstract class AbstractShippingService {
@Value("${delivery.customer.shipping-period}")
int shippingPeriod; // This is not being initialized with application.yml value, hence giving 0 during running test
public ShippingStatus getShippingStatus(String token, long ShippingRef, long ShippingCode);
}
The class which I am writing test for is:
@Singleton
public class ShippingService extends AbstractShippingService{
@Override
public ShippingStatus getShippingStatus(String token, long ShippingRef, long ShippingCode) {
....// some code
if (timeInDays <= shippingPeriod) {
// some code
}
}
}
And here is my test:
@ExtendWith(MockitoExtension.class)
@MicronautTest(propertySources = "application.yml")
public class ShippingServiceTest {
@Mock
CourierService courierService;
@InjectMocks
ShippingService shippingService;
@Test
void test_shouldReturnShippingStatusAwaiting_whenNoDeliveryAgentPresent() {
// Some methods mocked here
assertEquals(shippingService. getShippingStatus(TOKEN, SHIPPING_REF, ShippingCode.TWO, ShippingStatus.AWAITING);
}
}
The propertySources
attribute only works for MicronuatTest
but not on the class which I am writing tests for. How do I make sure the Value will get initialized ?