2016-07-06 4 views
-1

Я испытываю странное поведение в приложении Spring.Почему я не могу использовать @Before аннотацию в моем проекте? «До этого не может быть разрешен тип»

Я пытаюсь создать тестовый класс JUnit так:

public class AppTest { 

@Before 
public void setUp() { 
    // Create the application from the configuration 
    ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class) 
    // Look up the application service interface 
    service = (TransferService) context.getBean(TransferService.class); 
    } 

} 

Основная проблема заключается в том, что я получаю ошибку на @Before аннотацию по методу нАлАдкА(). Он сказал мне, что: Прежде чем не может быть разрешен к типу

Кажется, он не может найти зависимость для @Before аннотации.

Это зависимость, что у меня в pom.xml файла:

<properties> 
    <org.springframework.version>3.2.16.RELEASE</org.springframework.version> 
</properties> 


<dependencies> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-expression</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- Bean Factory and JavaBeans utilities (depends on spring-core) Define 
     this if you use Spring Bean APIs (org.springframework.beans.*) --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 


    <!-- Core utilities used by other modules. Define this if you use Spring 
     Utility APIs (org.springframework.core.*/org.springframework.util.*) --> 

    <!-- Aspect Oriented Programming (AOP) Framework (depends on spring-core, 
     spring-beans) Define this if you use Spring AOP APIs (org.springframework.aop.*) --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- Application Context (depends on spring-core, spring-expression, spring-aop, 
     spring-beans) This is the central artifact for Spring's Dependency Injection 
     Container and is generally always defined --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- Various Application Context utilities, including EhCache, JavaMail, 
     Quartz, and Freemarker integration Define this if you need any of these integrations --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- Transaction Management Abstraction (depends on spring-core, spring-beans, 
     spring-aop, spring-context) Define this if you use Spring Transactions or 
     DAO Exception Hierarchy (org.springframework.transaction.*/org.springframework.dao.*) --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- JDBC Data Access Library (depends on spring-core, spring-beans, spring-context, 
     spring-tx) Define this if you use Spring's JdbcTemplate API (org.springframework.jdbc.*) --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <!-- 
    <dependency> 
     <groupId>FTP-MANAGER</groupId> 
     <artifactId>FTP-MANAGER</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    --> 

    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
    </dependency> 

    <!-- JDBC 3.0 driver for Microsoft SQL Server and Sybase --> 
    <dependency> 
     <groupId>net.sourceforge.jtds</groupId> 
     <artifactId>jtds</artifactId> 
     <version>1.2.4</version> 
    </dependency> 

    <!-- Contiene la classe BasicDataSource --> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
</dependencies> 

Что мне не хватает? Что не так? Как я могу исправить эту проблему?

+1

Вы получили заявление об импорте? Вы знаете, в конце концов, любая аннотация - это просто класс java; так что вам нужно, чтобы они работали: 1) файл jar/class и 2) оператор импорта в вашем собственном коде – GhostCat

+0

попробуйте ctrl + shift + O (windows) или cmd + shift + O (mac) для организации импорта (на затмении или STS) – ddb

+0

Я не могу импортировать этот конкретный статус. Он говорит мне «создавать аннотацию раньше», поэтому это означает, что я не вхожу в зависимость mu – AndreaNobili

ответ

5

@Before можно приобрести у junit 4.x, перейти к более новой версии Junit.

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.11</version> 
    <scope>test</scope> 
</dependency> 

 Смежные вопросы

  • Нет связанных вопросов^_^