在 Testcontainer Spring 启动测试中模拟服务

问题描述

我是 Spring 的新手,我现在面临一个测试问题:

我有以下服务:

@Service
public class MyService {

public Integer getKey() {
    List<Integer> keys = getKeys(1);
    if (keys.size() == 1) {
        return keys.get(0);
    }
    throw new IllegalArgumentException("Error!");
}

... and a getKeys() method,which provides a list based ona  rest call...
}

我在另一个类中使用这个服务类:

@NoArgsConstructor
public class MyOtherClass extends MyClass {

@Autowired
private MyService myService;

....
@Override public KeyValue<Object,Object> doSomething(Object key,Object value) {
    if (conditionIsTrue(key,value)) {
            MyObject obj = new MyObject();
            myObject.setKey(keyService.getKey());  ----- here is always null the keyService
            .....
    } else {
        return KeyValue.pair(null,null);
    }
}

我尝试编写一个测试,但 MyService 始终为空..

@ActiveProfiles("my-test")
@SpringBootTest(classes = Application.class)
@Testcontainers
@Slf4j
public class MyTest extends TestContext {

@BeforeEach
void init(final TestInfo testInfo) {
   ....
}

@AfterEach
void deinit() {
    ....
}

@Test
public void myTest() {
....
}

如何将模拟 MyService 注入测试容器?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...