【发布时间】:2021-11-30 08:38:23
【问题描述】:
@RequiredArgsConstructor
public class GService {
@Autowired
private GRepository repository;
private final List<GRule> rules;
而我的测试课是这样的;
@ExtendWith(MockitoExtension.class)
class GServiceTest {
@InjectMocks
private GService service;
@Mock
private GRepository repository;
@Mock
private List<GameRule> rules;
规则没问题,但存储库未初始化且为空。如何初始化存储库?
【问题讨论】:
-
删除
@Autowired,创建字段final。重启。 -
有没有办法做到这一点,还是我必须把它们全部做成最终的?这是唯一的方法吗?
-
除非您想手动设置它们,否则应该更喜欢构造函数注入而不是字段注入。
-
如果你不希望它是最终的,你也可以使用
@AllArgsConstructor(虽然如果它是一个bean - 为什么不是最终的?)
标签: java spring mockito junit5 springmockito