下面的机制是什么使得不同的类型?
import static org.testng.Assert.assertEquals;
Run Code Online (Sandbox Code Playgroud)
@Test
public void whyThisIsEqual() {
assertEquals(new HashSet<>(), new ArrayList<>());
}
Run Code Online (Sandbox Code Playgroud) 我有端点,它需要很少的参数和主体作为输入,我想在Postman中测试它.但是,当我在Postman后端输入数据到'form-data'部分时抛出错误,我错过了身体.如果我尝试将输入数据输入'raw'(Text),它会抱怨我忘记了参数.我怎样才能将params和body结合起来?
编辑:
该端点的参数如下:
@RequestParam("to") String to,
@RequestParam("subject") String subject,
@RequestBody String content,
@RequestParam("isMultipart") Boolean isMultipart,
@RequestParam("isHtml") Boolean isHtml
Run Code Online (Sandbox Code Playgroud) 我想在 Helm 的 yaml(值文件)中将数组作为属性传递。我试过的:
试图。
elasticsearch:
uri: "[\"127.0.0.1:9200\",\"127.0.0.2:9200\"]"
Run Code Online (Sandbox Code Playgroud)
错误:
ReadString: 期望 " 或 n, 但发现 [, 在 #10 字节的 ...|RCH_URL 中发现错误":["127.0.0.1|..., 更大的上下文 ...|{"apiVersion":"v1", "数据":{"ELASTIC_SEARCH_URL": ["127.0.0.1:9200","127.0.0.2:9200"],"LOGS_ENV_PREFI|...
试图。根据官方掌舵站点如何传递数组
elasticsearch:
--set uri={127.0.0.1:9200,127.0.0.2:9200}
Run Code Online (Sandbox Code Playgroud)
有错误:
将 YAML 转换为 JSON 时出错:yaml:第 15 行:此上下文中不允许映射值
试图。
elasticsearch:
uri:
- 127.0.0.1:9200
- 127.0.0.2:9200
Run Code Online (Sandbox Code Playgroud)
与 1 相同的异常失败。
编辑:实际上在我的情况下,当时在 YAML 文件中没有使用 helm 值,所以我需要另一种格式,最后的解决方案是将 uri 作为带单引号的字符串传递:
elasticsearch:
uri: '["127.0.0.1:9200","127.0.0.2:9200"]'
Run Code Online (Sandbox Code Playgroud)
不过@Marcin 的回答是正确的。
我想通过liquibase changeset进行集成测试的模拟数据,如何使其不影响真正的数据库?我从这里找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案.
我认为XML文件读起来更清晰,但是它比SQL格式有优势吗?我[在这里]找到了一些信息(http://forum.liquibase.org/topic/liquibase-sql-vs-xml-command-changesets),但我很高兴听到其他人的声音。
但是,以下post命令应该对远程分支产生相同的输出
git fetch
git branch -a
Run Code Online (Sandbox Code Playgroud)
显示执行时不可见的远程分支
git ls-remote --heads origin
Run Code Online (Sandbox Code Playgroud)
这种行为的原因是什么?
[澄清]
(TA216441) $ git pull
Your configuration specifies to merge with the ref 'refs/heads/TA216441'
from the remote, but no such ref was fetched.
(TA216441) $ git fetch
(TA216441) $ git branch -a
* TA216441
TA216442
master
remotes/origin/HEAD -> origin/master
remotes/origin/TA212425
remotes/origin/TA216441
remotes/origin/TA219346
remotes/origin/TA220305
remotes/origin/TA223738
remotes/origin/master
(TA216441) $ git ls-remote --heads origin
hash-1 refs/heads/DE18756_2
hash-2 refs/heads/TA212425
hash-2 refs/heads/TA219346
hash-3 refs/heads/TA220305
hash-4 refs/heads/master
Run Code Online (Sandbox Code Playgroud) 我想断言来自其余控制器的 json 输出,但我得到“预期:null 但:was <[null]>”。这是我的测试代码:
mockMvc.perform(post(TEST_ENDPOINT)
.param("someParam", SOMEPARAM)
.andDo(print())
.andExpect(status().is2xxSuccessful())
.andExpect(jsonPath("*.errorMessage").value(IsNull.nullValue()));
Run Code Online (Sandbox Code Playgroud)
杰森:
{
"some_string": {
"errorMessage": null
}
}
Run Code Online (Sandbox Code Playgroud)
我发现类似的问题How to assertThat Something is null with Hamcrest? ,但这两个答案都不起作用。也许这是由于 jsonPath,导致它在 [] 括号中返回空值?是断言框架的bug吗?
如何使用休息模板来获取身体?
基于以下问题:POST request via RestTemplate in JSON,我尝试通过 HttpEntity 使用 body 进行 GET (只需检查是否可能),但接收失败:
缺少必需的请求正文
对于 HttpMethod.POST:localhost:8080/test/post主体已正确添加,但对于 HttpMethod.GET localhost:8080/test/get它未映射。我的代码如下:
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
private final RestTemplate restTemplate = new RestTemplate();
@GetMapping("/test/{api}")
public SomeObject test(@PathVariable("api") String api) {
String input = "{\"value\":\"ok\"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<>(input, headers);
HttpMethod method = "get".equals(api) ? HttpMethod.GET : HttpMethod.POST;
String url = "http://localhost:8080/" …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
List<LocalDate> dates = Arrays.asList(null, null,
LocalDate.now(), LocalDate.now().minusDays(9));
LocalDate max = dates.stream()
.max(Comparator.nullsLast(Comparator.naturalOrder())).get();
Run Code Online (Sandbox Code Playgroud)
当我尝试获取最大值时会产生空指针异常,但是当尝试获取最小值时会正常工作。这似乎不明原因max
发生Comparator
该处理空值。如何使用保留空值的流对此类数组进行排序。
顺便说一句,我检查了的JavaDoc max
,它指出:
如果最大元素为null,则@throws NullPointerException
编辑:
LocalDate max = dates.stream()
.max(Comparator.nullsLast(Comparator.naturalOrder())).orElse(null);
Run Code Online (Sandbox Code Playgroud)
也会抛出空指针。
如何使用流计算组的平均值.下面的代码我想转换为流解决方案.
public static void main(String[] args) {
List<Item> items = Arrays.asList(
new Item("A", 1.0),
new Item("A", 1.0),
new Item("B", 1.0)
);
System.out.println(averageForGroup(items));
}
public static double averageForGroup(List<Item> items) {
Set<String> uniqueGroups = new HashSet<>();
double sum = 0;
for (Item i : items) {
String groupName = i.getGroupName();
if (!uniqueGroups.contains(groupName)) {
uniqueGroups.add(groupName);
}
sum += i.getValue();
}
return sum / uniqueGroups.size();
}
Run Code Online (Sandbox Code Playgroud)
物品类:
public class Item {
private String groupName;
private Double value;
// Full-args constructor
// Getters and setters …
Run Code Online (Sandbox Code Playgroud) 我想在找到第一个值时终止流的执行.但是,当我在下面运行代码时,它会显示即使第一个方法存在值,也会调用两个方法.
public static void main(String[] args) {
Optional<String> s = Stream.of(first(), second())
.filter(Optional::isPresent)
.findFirst()
.flatMap(Function.identity());
System.out.println(s.get());
}
private static Optional<String> first() {
System.out.println("first");
return Optional.of("someValue");
}
private static Optional<String> second() {
System.out.println("second");
return Optional.empty();
}
Run Code Online (Sandbox Code Playgroud)
我在文档中检查了:
如果存在值,则返回{@code true},否则返回{@code false}.
返回描述此流的第一个元素的{@link Optional},如果流为空,则返回空的{@code Optional}.如果流没有遭遇顺序,则可以返回任何元素.
所以它遇到的第一个条件,第二个条件似乎也满足,因为它返回:
first
second
someValue
Run Code Online (Sandbox Code Playgroud)
如果第一个值存在,如何退出执行,而不执行第二个方法?
我看到一些程序员在枚举结构中使用名为 fromValue 的函数。如果我们可以使用 valueOf,它的目的是什么?例如,我发现了这样的事情:
public static FooEnum fromValue(String v) {
return valueOf(v);
}
Run Code Online (Sandbox Code Playgroud) 我尝试将 H2 用于测试目的添加到 Spring Boot 中application-test.yml
,我的生产数据库是 Oracle。我想通过 liquibase 填充 H2 模式,但收到以下错误:
引起:org.h2.jdbc.JdbcSQLException:找不到表“all_sequences”;SQL语句:
我的配置如下:
spring:
profiles:
active: test
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=Oracle
username: sa
password:
platform: h2
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: none
generate-ddl: true
h2:
console:
enabled: true
path: /console
liquibase:
url: ${spring.datasource.url}
enabled: true
user: sa
password:
change-log: classpath:liquibase/test-master.xml
drop-first: true
Run Code Online (Sandbox Code Playgroud)
如何调整上面的配置,我花了几个小时,但不知道如何使它工作。
java ×6
java-stream ×3
liquibase ×3
spring-boot ×3
java-8 ×2
list ×2
collections ×1
comparator ×1
enums ×1
git ×1
github ×1
hamcrest ×1
jsonpath ×1
kubernetes ×1
mocking ×1
optional ×1
postman ×1
resttemplate ×1
testing ×1
testng ×1
value-of ×1