这是我的主要代码:
@Service
public class MainService {
public String mainMethod() {
SomeService someService = new SomeService("required");
// do Sth.
}
}
@Service
@RequiredArgsConstructor
public class SomeService {
@Autowired
private SomeOtherService someOtherService;
@Notnull
private final String requiredField;
// ...
}
@Service
public class SomeOtherService {
// just a bunch of public methods that might as well be static
}
这是测试设置:
@RunWith(SpringRunner.class)
public class MainServiceTest {
@InjectMocks
private MainService mainService;
@Test
public void givenSth_whenSth_doSth() {
// test mainService.mainMethod();
}
}
你能告诉我为什么 SomeService 里面的 someOtherService 是空的吗?
我发现当你使用 Spring 的注入时,你不应该同时使用手动实例化 (new ...);所以也许new SomeService("required")是问题所在?但是,如果不是通过构造函数调用,我如何将字段变量注入 SomeService?我不想使用 Builder,因为 requiredField 应该是 NotNull。
慕无忌1623718
MM们
相关分类