public interface ResourceRepository extends CrudRepository<Resource, Long> { ... }
以下测试代码:
@WebMvcTest
@RunWith(SpringRunner.class)
public class RestResourceTests {
@Autowired
private MockMvc mockMvc;
@Test
public void create_ValidResource_Should201() {
String requestJson = "...";
mockMvc.perform(
post("/resource")
.content(requestJson)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isCreated()); // This fails with 404
}
}
为了解决该问题,我需要注入WebApplicationContext
并手动创建mockmvc
对象,如下所示:
@SpringBootTest
@RunWith(SpringRunner.class)
public class RestResourceTests {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setup() {
this.mockMvc = webAppContextSetup(webApplicationContext).build();
}
有没有更简单的方法实现这一点呢?
我想出了一个“干净”的解决方案,但对我来说就像一个虫子。
java prettyprint-override">@SpringBootTest
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc // <-- this is the fix
public class RestResourceTests {
@Autowired
private MockMvc mockMvc; // <-- now injects with repositories wired.
我觉得这是一个bug的原因,@webmvctest
注释已经将@autociguremockmvc
注释放置在测试的类上。
感觉@webmvctest
没有查看加载了@restrepository
的web组件。
我试图用jqGrid解决Spring Data Rest的问题,所有的事情都很好,除了我想要将对象全部作为序列化返回,所以在ManyToOne关系中,我现在只得到该对象的链接,而我想要将它序列化。 如您所见,中的accountManager类返回为link,但我希望它也被序列化,以便在JQGrid中显示Name属性。 向Shahbour问好
问题是,Spring HATEOAS和Spring Data Rest之间有什么区别? 我觉得两者都可以做同样的事情,Spring数据Rest(作为Spring数据的一部分)似乎更有活力。 https://github.com/spring-projects/spring-hateoas https://github.com/spring-projects/spring-data-rest 你什么
我们得到了异常:参数值元素[1]与预期类型[java.lang.long(N/A)]不匹配 上面的存储库有什么问题?传递数字ID的正确方法是什么?
我正在使用Spring data redis和jedis与aspectJ进行日志记录。但是得到以下错误。请帮助解决此错误。我在这上面花了很多时间,但无法解决它。 我使用的是Spring数据redis 1.4.1,jedis-2.6.1和Redis-2.8 错误详情:- 下面是使用spring data redis的redis Sentinel配置的Java配置文件 下面是用于日志记录的Aspect
我遵循一个简单的教程来测试SpringDataREST的行为,用@RestResource注释库。我有一个非常简单的场景:用@RestResource注释的Jpa用户实体和用户存储库 我使用注释配置初始化,并尝试注册RepositoryRestMvcConfiguration,以便可以注册UserRepository。但是我的应用程序没有启动,我有以下例外 我使用sping-hateoas: 0.
我有一个简单的JpaRepository和一个finder,它返回按名为“number”的属性降序排列的记录。“number”属性也是我的实体的@Id。这很好,但是有数千条记录,所以我想返回一个页面而不是列表。 如果我将查找器更改为以下内容,则排序不再起作用。我尝试过使用可分页参数的排序功能,但不起作用。还删除了OrderByNumberDesc,但结果相同。 EDIT-添加控制器方法 以下是我的