首页 > 解决方案 > Spring Boot 中的单元测试服务层

问题描述

我有一个服务层(下面的代码:)

@Service
public class EquityFeedsService {

    @Autowired
    private EquityFeedsRedisRepositoryImpl equityFeedsRedisRepositoryImpl;

    public void save(EquityFeeds equityFeeds) {

        logger.info("Inside the save method of EquityFeedsService.");

        equityFeedsRedisRepositoryImpl.save(equityFeeds);
    }

   // other methods 
}

现在我正在尝试为下面的上述方法编写一个单元测试用例:

@ExtendWith(SpringExtension.class)
@AutoConfigureMockMvc
public class EquityFeedsServiceTest {

    private MockMvc mockMvc;

    @InjectMocks
    private EquityFeedsService equityFeedsService;

    @Mock
    private EquityFeedsRedisRepositoryImpl equityFeedsRedisRepositoryImpl;

    @BeforeEach
    public void setUp() {
        mockMvc = MockMvcBuilders.standaloneSetup(equityFeedsService).build();
    }

    @Test
    public void testSaveMethod() {
        EquityFeeds equityFeeds = new EquityFeeds(423,"SAPEXTXN1", "GS");

        when(equityFeedsRedisRepositoryImpl.save(any(EquityFeeds.class))).thenReturn(new EquityFeeds());


    }
}

这段代码给了我以下异常: in line (any(EquityFeeds.class))

Required type:
EquityFeeds (This is my model class) 

Provided:
Matcher <com.investmentbank.equityfeedsprocessingupdated.model.EquityFeeds> (This is the fully qualified path name of the mode class) 
no instance(s) of type variable(s) T exist so that Matcher<T> conforms to EquityFeeds

和例外:

Cannot resolve method 'thenReturn(com.investmentbank.equityfeedsprocessingupdated.model.EquityFeeds)'     

我的单元测试用例有什么问题?我该如何解决这个问题?

标签: unit-testingmockitojunit5spring-boot-testdomain-service-class

解决方案


推荐阅读