小编Mic*_*lec的帖子

当我的REST API返回500 HTTP状态时如何禁用Tomcat的html错误页面

我正在使用@ 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错误响应内容

java rest tomcat spring-mvc tomcat8

7
推荐指数
1
解决办法
981
查看次数

是否可以使用Mockito验证测试的对象方法调用?

我有一些业务逻辑类:

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()不是在模拟上调用,而是在实际服务中调用?

java tdd junit junit4 mockito

6
推荐指数
1
解决办法
4649
查看次数

如何使用react-query获取n个相关数据

我需要有关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 函数中调用。(反应钩子/钩子规则)

reactjs react-hooks react-query

6
推荐指数
3
解决办法
9460
查看次数

给定、when、then 约定以及异常处理。使用 Mockito 和 JUnit

将测试用例分为 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)

有谁知道一些好的约定或库可以更好地处理测试中的异常?

java tdd bdd junit junit4

5
推荐指数
1
解决办法
4576
查看次数

使用Spring Data JpaRepositories的LazyInitializationException

我有以下实体:

用户:

@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)

java spring hibernate jpa spring-data

5
推荐指数
1
解决办法
4019
查看次数

为什么Java的String不能从Comparable接口分配

JavadocString工具Comparable<String>

但是,以下代码返回false:

String.class.isAssignableFrom(Comparable.class)
Run Code Online (Sandbox Code Playgroud)

如何检查某个类是否实现了给定的接口?

java reflection

1
推荐指数
1
解决办法
380
查看次数