我正在使用@ ControllerAdvice,@ ErrorHandler和@ResponseStatus批注返回一些错误信息。我确定已执行处理程序方法(已在调试器中检查了它。)但是Tomcat HTML错误页面覆盖了我的ErrorInfo对象。
@ExceptionHandler(value = ServiceExecutionException.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR, reason = "Internal Server Error")
ErrorInfo handleServiceError(HttpServletRequest request, HttpServletResponse response, Exception e) {
return new ErrorInfo(request.getRequestURL().toString(), e.getLocalizedMessage());
}
Run Code Online (Sandbox Code Playgroud)
这是一个类似的问题,但是它没有包含正确的答案,因为我试图避免使我的代码复杂化。 禁用Tomcat中的所有默认HTTP错误响应内容
我有一些业务逻辑类:
public class SomeService {
public void doFirst() {}
public void doSecond() {
doFirst();
}
}
Run Code Online (Sandbox Code Playgroud)
并测试它:
public class SomeServiceTest {
private SomeService service;
@Before
public void setUp() {
service = new SomeService();
}
@Test
public void doSecond_someCondition_shouldCallFirst() {
// given
...
// when
service.doSecond();
//then
how to verify doFirst() was called?
}
}
Run Code Online (Sandbox Code Playgroud)
如何验证doFirst()不是在模拟上调用,而是在实际服务中调用?
我需要有关react-query库的帮助。我获取一个对象列表,然后对于每个需要从另一个服务获取额外数据的人。我应该如何使用 react-queryuseQuery钩子来做到这一点?
示例 1:
const { data} = useQuery("USERS", fetchUsers);
data.map(user => useQuery(["ACCOUNT", {userId: user.id}],
({userId}) => fetchAccount(userId)));
Run Code Online (Sandbox Code Playgroud)
错误:
ESLint:
useQuery无法在回调中调用React Hook 。React Hooks 必须在 React 函数组件或自定义 React Hook 函数中调用。(反应钩子/钩子规则)
将测试用例分为 3 个部分是一个很好的做法:Given、When、Then。
但在 JUnit 中处理异常的常见方法是使用 ExpectedException @Rule。
问题是 ExpectedException::expect() 必须在 //when 部分之前声明。
public class UsersServiceTest {
// Mocks omitted
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void signUp_shouldCheckIfUserExistsBeforeSign() throws ServiceException {
// given - its ok
User user = new User();
user.setEmail(EMAIL);
when(usersRepository.exists(EMAIL)).thenReturn(Boolean.TRUE);
// then ???
thrown.expect(UserAlreadyExistsServiceException.class);
// when???
usersService.signUp(user);
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道一些好的约定或库可以更好地处理测试中的异常?
我有以下实体:
用户:
@Entity
public class User {
@Id
@Column(nullable = false)
private String email = "";
@Column(nullable = false)
private String nickname = "";
@Column(nullable = false)
private String password = "";
@ManyToMany(cascade = CascadeType.ALL)
private List<NewsSource> newsSources;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
新闻来源:
@Entity
public class NewsSource {
@Id
@Column(nullable = false)
private URL url;
private LocalDateTime updateTime;
@OneToMany(cascade = CascadeType.ALL)
private List<News> newses;
@ManyToMany(cascade = CascadeType.ALL)
private List<User> users;
}
Run Code Online (Sandbox Code Playgroud)
UsersRepository和NewsSourcesRepository是Spring Data JPA中的简单JpaRepositories.他们的配置如下:
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:database_config.properties")
@EnableJpaRepositories(basePackages = …Run Code Online (Sandbox Code Playgroud) Javadoc说String工具Comparable<String>
但是,以下代码返回false:
String.class.isAssignableFrom(Comparable.class)
Run Code Online (Sandbox Code Playgroud)
如何检查某个类是否实现了给定的接口?
java ×5
junit ×2
junit4 ×2
tdd ×2
bdd ×1
hibernate ×1
jpa ×1
mockito ×1
react-hooks ×1
react-query ×1
reactjs ×1
reflection ×1
rest ×1
spring ×1
spring-data ×1
spring-mvc ×1
tomcat ×1
tomcat8 ×1