SpringBootTest:在@component测试文件

时间:2018-10-28 17:38:54

标签: spring groovy spring-test spring-boot-test

我是测试的初学者,现在有一个我无法克服的问题。

@SpringBootTest
ExampleMakerSpec extends Specification {

@Autowired @Subject ExampleMaker exampleMaker
@Autowired 
ExampleRepository exampleRepository

def EXAMPLE_VARIABLE = "Example"

@Transactional
def "example() trying to do somehthing" () {      
    when: "trying to make some examples"
        Examples examples = exampleMaker.createExamples(examples)

    then: "get examples sizes and saves them to database"
        examples.size == 7

我的Example制作者看起来像这样:

@Component
public class ExampleMaker {

    @Autowired
    ExampleRepository exampleRepository;

    public void createExamples() {
        exampleRepository.save(Examples);

    }


}

CRUD存储库:

@Repository
public interface exampleRepository extends CrudRepository<Example, Long> {

}

但是我总是得到

在exampleRepository.save(示例)行的

java.lang.NullPointerException。

因此由于某种原因,测试无法找到存储库。我在这里需要帮助以了解缺少的内容。

1 个答案:

答案 0 :(得分:-2)

您需要在测试类中自动连接exampleRepository。因此,在创建测试类ExampleMakerSpec时,Spring会寻找并注入ExampleRepository