given(commentRepository.findOne(1L)).willReturn(comment);
现在,当调用“/comments/1”时,我得到了404个错误,所以数据rest没有公开我的存储库。主要问题是“如何模拟存储库方法从数据库中获取数据?”
我的测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CommentTest
{
@Autowired
private TestRestTemplate restTemplate;
@MockBean
private CommentRepository commentRepository;
@Before
public void setup()
{
Comment comment = new Comment();
comment.setText("description");
comment.setCommentId(1L);
given(commentRepository.findOne(1L)).willReturn(comment);
}
@Test
public void shouldCheckCommentGetResource()
{
ParameterizedTypeReference<Resource<Comment>> responseType = new ParameterizedTypeReference<Resource<Comment>>() {};
ResponseEntity<Resource<Comment>> responseEntity =
restTemplate.exchange("/comments/1", HttpMethod.GET, null, responseType, Collections
.emptyMap());
Comment actualResult = responseEntity.getBody().getContent();
assertEquals("description", actualResult.getText());
// more assertions
}
}
据我所知,使用MockBean注释我替换了当前的存储库bean并且它不会被数据rest公开,我们有没有办法将数据预填充到db或存储库方法的模拟调用?
我认为这是不可能的。Spring data使用FactoryBean注册存储库bean-在spring-data-rest大小写中,这是EntityRepositoryFactoryBean
。所以不能仅仅用mock覆盖这些bean。
要了解为什么模拟spring数据存储库不有用,请参阅以下答案https://stackoverflow.com/A/23442457/5371736
在同一线程中,有一个项目引用了引入spring-data repositories的模拟支持--https://stackoverflow.com/a/28643025/5371736
正如标题所说,当我将spring数据rest存储库添加到现有的spring数据rest webmvc项目中时,我开始在项目运行中出错。 我试图使用@ConvertBy(MyConverter.class)在实体中遵循此链接进行嵌入ID转换。然而,仅仅添加jar就会导致以下错误和大量o. s. c. i. s. PathMatchingResourcePatterResolver日志。
我在Spring Boot中有一个带有Spring Data Rest的应用程序,我正在尝试使用Swagger maven插件生成带有Swagger的文档。生成控制器文档时没有问题,但存储库没有问题。 我已经在pom中配置了如下形式的swagger maven插件。xml: 我的随身携带物品: 是否可以用swagger-maven-plugin生成存储库留档?
当我扩展CrudRepository接口时,我的子接口中有方法。我可以写 签入我的服务层。
它是否将其存储在缓存中?我有一个应用程序,但应用程序中没有任何地方。属性是提到的db详细信息。我可以通过邮递员存储数据和查询它。
数据存储模型 如图所示是Talos数据存储的组织形式 逻辑结构:如图左上角,数据以Topic形式存在,逻辑上分为多个partition,图中topic有8个partition,partition id 为 [0, 7] 物理结构:每个Partition在硬盘上是以多个文件组织而成,如图 Partition 7 由 3 个文件组成:file 1,file 2,file 3; Message组织形式:
如果我打电话: 它给出了方法的结果 但是现在我需要从调用这个方法(JPararePository扩展了这个接口) 为了调用EmployeeRepository作为restendpoint,我给EmployeeRepository编写了一些函数。 但我得到了一个错误: