当前位置: 首页 > 知识库问答 >
问题:

springboot 2 jpa集成测试是否可以编写为通过rest控制器进行全面测试?

谢修真
2023-03-14

我想写一个接受restful请求并通过JPA处理它们的联调

  1. 在h2数据库中创建记录

如何通过restful服务endpoint联调整个应用程序,同时让JPA CRUD的h2数据库?

类似于以下内容:(无耻地从mkyong盗取和修改)。

我相信其他人一定考虑过这一点,要么这样做,要么有更好的方法,要么有理由不这样做。

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 
@DataJpaTest // This breaks
public class BookRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private BookRepository repository;

    @Test
    public void testFindByName() {

        entityManager.persist(new Book("C++"));

        List<Book> books = repository.findByName("C++");
        assertEquals(1, books.size());

        assertThat(books).extracting(Book::getName).containsOnly("C++");

    }

}
java.lang.IllegalStateException: 
Configuration error: found multiple declarations of @BootstrapWith for test class 
[com.mkyong.BookRepositoryTest]: [
@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.context.SpringBootTestContextBootstrapper)
, 
@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper)
]

共有1个答案

彭鸿文
2023-03-14

如果它是必须具备的功能,您是否考虑使用Selenium Web驱动程序?它使用实际的应用程序和数据库,因此无需担心使用H2。

 类似资料:
  • 我已经为Jenkins项目的集成公司建立了一个PoC,当Git存储库中有一个检查时,该PoC将构建并执行测试。当测试完成后,Jenkins将更新在Xray for JIRA中管理的测试。 测试是用cucumber写的。我曾徒劳地试图导致一个单一的测试产生一个失败,只是为了能够将它添加到我将要给高层管理人员的演示中。 以下是我的文件helloworld.feature的内容: 我知道不知道小cucu

  • 我正在编写一个Spring boot Rest控制器的测试。这个rest控制器将一些值写入DB。 我想使用Spring为这个测试提供的内存数据库。根据这个文档,我必须用注释测试类,这导致了这个错误: 在错误堆栈跟踪中,我看到抛出了以下异常: 的replace属性 这是我正在研究的测试类: 是什么导致了这个错误? 编辑2 我在中添加了以下内容: 我创建了,内容如下: 用户名和密码是什么?我应该把它们

  • 问题内容: 如果是跑它运行在您的文件结尾通过运行启动格式的功能和使用(* T testing.T)模块。我想知道文件中的每个功能是同时运行还是确定地分别运行每个功能?是否为每个人创建一个执行例程?如果确实为每个例程创建了一个go例程,是否可以某种方式监视go例程?是否有可能做类似的事情并为每个实例获取一个实例并对其进行监控,诸如此类? 注意:这个问题假设您使用go(测试)随附的测试框架。 问题答案

  • 我试图使用mockmvcbuilders.standalonesetup方法为一个spring mvc rest控制器创建一个非常基本的单元测试。我一直收到一个404错误。下面列出了测试应用程序上下文、测试类、控制器和整个堆栈跟踪。欢迎任何指导。 java.lang.AssertionError:状态应为:<200>但实际为:<404>在org.springframework.test.util.

  • 问题内容: 在Vojta Jina的优秀存储库中,他在其中演示了指令的测试,他在模块包装器之外定义了指令控制器。看到这里:https : //github.com/vojtajina/ng- directive-testing/blob/master/js/tabs.js 这不是不好的做法并且会污染全局名称空间吗? 如果在另一个地方可以合理地调用TabsController,那会不会很麻烦? 可以

  • 我对Spring boot和JUnit是新手。我在Spring Boot中有一个Rest服务,在那里我接收请求,使用请求参数查询数据库,从查询中接收结果并将其作为响应发送。 我的控制器代码如下所示: 我的JdbcTemplate被作为一个单独类中的bean处理,如下所示 我的代码运行良好。 现在我想使用JUnit4为我的控制器编写单元测试。我使用MockMvc发送请求,但我的单元测试从未起飞。它总