Сбой Junit после учебника MongoDB, Springboot - PullRequest
0 голосов
/ 12 июня 2019

Я следую этому уроку:

https://www.baeldung.com/spring-boot-embedded-mongodb

Только точка 1,2,3

Мне нужно вставить и проверить новые регистры в моем mongoDB embebed.

это мой pom:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>2.1.1.RELEASE</version><!--$NO-MVN-MAN-VER$ -->
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <dependency>
        <groupId>de.flapdoodle.embed</groupId>
        <artifactId>de.flapdoodle.embed.mongo</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>

Это мой test.java:

import static org.assertj.core.api.Assertions.assertThat;

import java.util.List;

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
import org.springframework.data.mongodb.core.MongoTemplate;

import com.batch.DesarrolloBatch.model.Documento;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DBObject;

@DataMongoTest
public class TestApplicationConfiguration {


            @Test
            public void test(@Autowired MongoTemplate mongoTemplate) {
                // given
                DBObject objectToSave = BasicDBObjectBuilder.start()
                    .add("_id", "999999999999")
                    .get();

                // when
                mongoTemplate.save(objectToSave, "collection");

                List<Documento> list =  mongoTemplate.findAll(Documento.class, "collection");

               System.out.println("size " + list.size());

                // then
                assertThat(mongoTemplate.findAll(Documento.class, "collection")).extracting("_id")
                    .containsOnly("999999999999");
            }
}

Я пытаюсь вставить новый документ с атрибутом _id value = 99999999

Но этот код не удался, поэтому я пытаюсь увидеть размер моего списка, чтобы узнать, если я вставлю успех ...

Я получаю эту ошибку:

java.lang.Exception: Method test should have no parameters
    at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:76)
    at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:155)
    at org.junit.runners.BlockJUnit4ClassRunner.validateTestMethods(BlockJUnit4ClassRunner.java:208)
    at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:188)
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:87)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:73)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

ЯНовое в Junit, mongodb ... Я только хочу использовать mongoDB embebed, вставить и проверить мой bbdd .... спасибо ...

1 Ответ

0 голосов
/ 12 июня 2019

Вы забыли аннотацию на уровне класса: @ExtendWith (SpringExtension.class)

@DataMongoTest
@ExtendWith(SpringExtension.class)
public class TestApplicationConfiguration {

        @Test
        public void test(@Autowired MongoTemplate mongoTemplate) {
            // your test code
        } 
}

Пожалуйста, внимательно прочитайте руководство.

Вот ссылкав репозиторий GitHub, где вы можете найти pom.xml и весь исходный код:

https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-boot-persistence-mongodb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...