Как я могу решить эту проблему (Класснельзя разрешить типу)? - PullRequest
0 голосов
/ 11 октября 2018

Я реализовал простой проект с использованием Spring и Maven, мой проект содержит интерфейс и 3 класса и файл pom.xml

Интерфейс: CompactDisc.java

3 класса: SgtPeppers.javaкоторый реализует интерфейс CompactDisc

CDPlayersConfig.java - пустой класс и содержит аннотации автоматического сканирования

CDPlayersTest.java - тестовый класс для проверки работоспособности контейнера пружины.

Моя проблема связана с @RunWith (SpringJUnit4ClassRunner.class) и @ContextConfiguration (classes = CDPlayersConfig.class) , Eclipse предлагает это предложение для первой аннотации Класс не может быть разрешен для типа и он не понимает вторую аннотацию.

Вы найдете здесь код:

CompactDisc.java

     package soundsystem; 
    public interface CompactDisc {
        void play();
}

SgtPeppers.java

package soundsystem;

import org.springframework.stereotype.Component;

@Component
public class SgtPeppers implements CompactDisc{

    private String title = "Sgt. Pepper's Lonely Hearts Club Band";
    private String artist = "The Beatles";

    public void play() {

        System.out.println("Playing " + title + "by"+ artist);
    }

}

CDPlayersConfig.java

package soundsystem;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
public class CDPlayersConfig {

}

CDPlayerTest.java

package soundsystem;

import static org.junit.Assert.assertNotNull;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.jta.SpringJtaSynchronizationAdapter;

@RunWith(SpringJUnit4ClassRunner.class)//Here is my problem
@ContextConfiguration(classes=CDPlayersConfig.class)//Here is my problem
public class CDPlayerTest {

    @Autowired
    private CompactDisc cd;

    @Test
    public void cdShouldNotBeNull() {
        assertNotNull(cd);
    }
}

Зависимости в файле pom

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
</dependency>

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.0.5.RELEASE</version>
            <scope>test</scope>
</dependency>

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Я не вижу

 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.ContextConfiguration;

в разделе импорта.Также, возможно, вам следует использовать SpringRunner.class вместо SpringJUnit4ClassRunner.class

0 голосов
/ 11 октября 2018

В Eclipse

Щелкните правой кнопкой мыши свой проект

Выберите Maven

Выберите Обновить проект

Отметьте

Update project config from pom.xml

Refresh workspace

Clean projects

После этого необходимые библиотеки будут доступны для Eclipse, и вы сможете импортировать классы по мере необходимости.

0 голосов
/ 11 октября 2018

Вам не хватает импорта (import org.springframework ...) для SpringJUnit4ClassRunner и ContextConfiguration.Вот почему они не признаны.

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