小编Kri*_*ris的帖子

模拟存储库 JUnit 时出现 NullPointerException

我创建了一个带有控制器、服务和存储库层的基本 Rest API。我现在正在尝试为服务层方法编写一个单元测试,该方法通过产品 ID 查找产品。但是,当我运行测试时,它在我尝试模拟存储库 findById() 方法的行中抛出 NullPointerException。

服务层的getProductById()方法如下:

public Product getProductById(String id){ return productRepository.findById(id).orElse(null); }

我的服务层测试类:

package com.product.Services;

import com.product.Entities.Product;
import com.product.Repositories.ProductRepository;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)

class ProductServiceTest {

   @InjectMocks
   ProductService productService;

   @Mock
   ProductRepository productRepository;

   @Test
   void getProductById() throws Exception {

      Product product = new Product();
      product.setId("001");
      product.setName("TV");
      product.setPrice(999.99);

      when(productRepository.findById("001").orElse(null)).thenReturn(product);
      assertEquals(product,productService.getProductById("001"));
   }
}
Run Code Online (Sandbox Code Playgroud)

附上调试器显示的图片: 在此输入图像描述

java testing rest junit

5
推荐指数
1
解决办法
7480
查看次数

在 Maven 项目中混合 Lombok、Java 和 Scala

我有一个混合的 Scala/Java maven 项目,其中应用程序代码、单元和集成测试是用 Java 编写的,但性能测试是用 Scala 编写的。

Scala 性能测试依赖于几个具有@DataLombok 注释的 Java 集成测试类。为了让 getter 和 setter 工作,我必须进行编译JavaThenScala,这可以通过 IntelliJ Scala 编译器设置来完成。

我的问题是 - 有没有办法可以设置我的 Maven 插件来进行JavaThenScala编译,而无需调整 IntelliJ 设置,因为我想将代码部署到其他地方?

我正在尝试使用该compileOrder配置,但它似乎对我不起作用。

我的 Maven 插件:

  <build>
    <plugins>
      <plugin>
        <groupId>met.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>4.0.0</version>
        <configuration>
            <compileOrder>JavaThenScala</compileOrder>
        </configuration>
      </plugin>
      <plugin>
        <groupId>io.gatling</groupId>
        <artifactId>gatling-maven-plugin</artifactId>
        <version>3.1.1</version>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
Run Code Online (Sandbox Code Playgroud)

java scala compilation maven lombok

0
推荐指数
1
解决办法
733
查看次数

标签 统计

java ×2

compilation ×1

junit ×1

lombok ×1

maven ×1

rest ×1

scala ×1

testing ×1