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

SpringDataREST不能做集成测试?

燕英奕
2023-03-14

我尝试使用MockMVC和TestRestTemboard。在这两种情况下,返回的响应都是404,但是APIendpoint在集成测试之外工作(当我自己运行Spring应用时)。

有没有人有一个可以工作的示例应用程序,它使用SpringDataREST对生成的控制器进行了工作集成测试?

我还可以编写针对自己控制器的常规集成测试(非SDR类型)

测试代码:

@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MyTest {

    @Autowired
    private TestRestTemplate testRestTemplate;

    @Test
    public void testApi() {
        String settings = testRestTemplate
                .getForObject("/api/v1/orders", String.class);
        System.out.println(settings);
    }

}

回购:

@RepositoryRestResource(excerptProjection = OrderSummaryProjection.class)
public interface OrderRepository extends JpaRepository<Order, Long> {}

好的,我发现了问题,但我不知道答案是什么:

我设置了Spring。数据Rest应用程序中的基本路径。财产。

但是我认为在运行集成测试时不会读取该文件。我该怎么解决这个问题?

共有1个答案

堵宏毅
2023-03-14

我目前不测试Spring数据Restendpoint,但如果我这样做,我将使用经典的集成测试方法测试接口:

@RunWith(SpringRunner.class)
@SpringBootTest
public class DummyIT {

    @Autowired
    private SettingsRepository settingsRepository;

    @Test
    public void testApi() {
        List<Settings> settings = settingsRepository.findAll();
        assertNotNull(settings);
    }

}

我还测试了端到端测试,它也可以工作,它只是返回丑陋的{"_embedded":{"设置":[{...}]},...}所以这是可行的,但不漂亮:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class DummyTest {

    @Autowired
    private TestRestTemplate testRestTemplate;

    @Test
    public void testApi() {
        String settings = testRestTemplate
                .getForObject("/api/settings", String.class);
        System.out.println(settings);
    }

}
 类似资料:
  • 我有一个用selenium进行单元测试和集成测试的项目。 当我用IntelliJ执行cucumber集成测试时,它工作得很好,您可以看到: 用Intellij执行cucumber集成测试 但是,当我执行mvn集成测试时,似乎没有发现任何联调: 故障保护输出 我定义了以下POM: > 文件夹结构是文件夹结构 mvn集成-测试输出https://drive . Google . com/file/d/

  • 我如何隔离酒吧的运行?Grails3.1.5应用程序中也需要一个geb.config。我找不到任何文件来解决这个问题。 谢谢

  • 下面是集成测试类: Junit Contole跟踪错误:

  • 问题内容: 我们已经有一个持续的集成过程,可以构建,运行单元测试,进行静态代码分析并生成文档。但是,我们希望将其扩展到包括自动性能测试。在这种情况下,我们正在开发.NET Web应用程序。 我们已经使用JMeter(在CI流程之外)进行了一些性能测试,但是我不知道这是否是包含在CI流程中的最佳工具?selenium是一种选择吗?WAPT Pro? 我们应该在哪个级别上测试性能?我们应该有一套“性能

  • 主要内容:集成测试背后的原因,集成测试技术,集成测试方法,集成测试指南集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。 集成测试背后的原因 虽然软件应用程序的所有模块已经在单元测试中进行了测

  • 设计 集成测试包括 3 个模块:测试用例、测试环境以及测试引擎。 测试用例 用于定义待测试的 SQL 以及测试结果的断言数据。 每个用例定义一条 SQL,SQL 可定义多种数据库执行类型。 测试环境 用于搭建运行测试用例的数据库和 ShardingSphere-Proxy 环境。 环境又具体分为环境准备方式,数据库类型和场景。 环境准备方式分为 Native 和 Docker,未来还将增加 Emb