我试图模拟一个对象,该对象使用Mockito返回一个Java Optional对象:
SomeObject someObject = new SomeObject();
Mockito.when(someSpringJpaRepository.findById(Mockito.any(UUID.class))).thenReturn(Optional.of(someObject));
Run Code Online (Sandbox Code Playgroud)
当someSpringJpaRepository.findById(UUID)被调用时,它返回Optional.empty。
我期望该方法findById()返回someObject。
为什么要返回Optional.empty呢?
方法如下:
public UUID saveOrder(OrderDTO orderDto) {
Order order = new Order();
if (orderDto.getId() != null) {
Optional<Order> result = orderRepository.findById(orderDto.getId());
if (result != null && result.isPresent()) {
order = result.get(); // existing record
} else {
order.setId(UUID.randomUUID());
}
} else {
// new record
order.setId(UUID.randomUUID());
}
return order.getId();
}
Run Code Online (Sandbox Code Playgroud)
这是Junit:
@Test
public void saveOrderTest(){
@Autowired
private OrderApiService orderApiService;
@Mock …Run Code Online (Sandbox Code Playgroud) 我想通过 readYaml 实用程序读取声明性 Jenkinsfile 中的 yaml 文件的内容。我的理解是 readYaml 应该返回一个 Map,但是,我看到返回的对象类型是一个字符串。这首先违背了将数据放入 yaml 文件的目的。
具体来说,我想从 helm values.yaml 文件中获取一些值,以便在 Jenkinsfile 的全局环境部分中设置 env 值,以便所有后续阶段都能够使用。
的println valuesYaml.getClass(),因为这个对象来自嵌套YAML文件,所以我想返回的对象应该是一个地图返回java.lang.String中我认为这是不正确的。
当以下 echo 语句运行时,echo valuesYaml.appName.toString()它会出错并显示以下错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:找不到这样的字段:字段java.lang.String appName
这是我正在尝试阅读的 values.yaml 的片段:
replicaCount: 1
appName: test
Run Code Online (Sandbox Code Playgroud)
def loadValuesYaml(){
def valuesYaml = readYaml (file: './chart/values.yaml')
return valuesYaml;
}
pipeline {
agent {
label "jenkins-maven"
}
environment {
valuesYaml = loadValuesYaml()
}
stages {
stage('CICD Initialize') {
steps {
script{
echo valuesYaml
println valuesYaml.getClass()
}
echo valuesYaml.appName.toString()
} …Run Code Online (Sandbox Code Playgroud)