controller.java
@RestController
public class Controller {
@Autowired
private UserService userService;
@Autowired
private BookService bookService;
//Below userService implementation
@PostMapping(value = "/addNewUser", consumes = "application/json")
public void addNewUser(@RequestBody User newUser) {
userService.addNewUser(newUser);
}
@GetMapping(value = "/findUserById/{id}", produces = "application/json")
public User findUserById(@PathVariable("id") Long id) {
return userService.findUserById(id);
}
@GetMapping(value = "/findUserByName/{name}", produces = "application/json")
public User findUserByName(@PathVariable("name") String name) {
return userService.findUserByName(name);
}
UserServiceImpl.java
@Transactional
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public void addNewUser(User newUser) {
userRepository.save(newUser);
}
public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findUserByName(String name);
Optional<User> findUserBySurname(String surname);
}
//@RunWith(SpringRunner.class)
@RunWith(MockitoJUnitRunner.class)
@WebMvcTest(Controller.class)
public class ControllerTest {
// @MockBean
// private UserService userService;
//
// @MockBean
// private BookService bookService;
@Mock
private UserService userService;
@Mock
private BookService bookService;
@Autowired
private MockMvc mockMvc;
@Test
public void test(){
}
}
@RunWith(SpringRunner.class)
//@RunWith(MockitoJUnitRunner.class)
@WebMvcTest(Controller.class)
public class ControllerTest {
@MockBean
private UserService userService;
@MockBean
private BookService bookService;
// @Mock
// private UserService userService;
//
// @Mock
// private BookService bookService;
@Autowired
private MockMvc mockMvc;
@Test
public void test(){
}
}
我得到了这个错误
应用程序启动失败
描述:
我使用的SpringBoot版本:2.1.0.发行版
您的测试正在用EntityManagerFactory
bean加载JPA。在主应用程序类中,我认为您已经编写了@enablejparepositories
,如果您的存储库位于主应用程序的基本包之下,就不需要它了。删除此注释,因为您的测试类应该只用于测试web层。
我研究了StackOverflow的类似问题,但在我的案例中找不到根本原因。 上下文: 我在中有依赖于。我想模拟以便单元测试Controller。 代码: : :
有没有办法绕过授权?
我在我的模型中使用LocalDateTime,在包括LocalDateTimeDeserializer之后,将bean字段转换为 包括 属性在SpringBoot的应用程序中。属性文件,应用程序最终能够反序列化JSON并正确显示如下内容:, 但是,当我进行测试时,它会忽略WRITE_DATES_AS_TIMESTAMPS标志,我猜它会为上面相同的字符串日期生成一个输出, 请注意,在测试资源文件夹中
我有一个Springboot应用程序,我的实体模型与作为依赖项包含的主应用程序分开。 我的Application.java位于此包中 我的实体模型位于这个包com.a.b中的另一个项目中 但是我得到一个错误:由:java.lang.IllegalArgumentException:不是托管类型:类引起
我尝试为一个简单的spring引导控制器创建第一个测试,但得到的是。在浏览器中,代码是工作的,但测试失败。我的应用程序使用spring-安全。请帮助我解决问题,并理解我的错误。谢谢你。 这是控制器: 这是个考验。 这是结果日志: mockHttpServletRequest:HTTP方法=GET请求URI=/get_all_items参数={}Headers={accept=[text/html]
我正在学习Spring Boot来构建应用程序。我试图用不同包中的控制器作为应用程序来构建我的第一个Spring Boot应用程序。Tomcat实例出现,但请求没有到达为URI注册的RestController。 以下是控制器类: 以下是应用程序类: Pom.xml tomcat启动时的日志: 我添加了基本包扫描,甚至尝试了注释,但当我点击URL(http://localhost:8080/abc