Я пытаюсь работать с AssertJ в IntelliJ Community Edition.
Это не работает, как ожидалось. Где я делаю ошибку? Любая помощь/понимание будет очень признательна.
Ссылка на технологию:
#P4#
#P5#
package org.kayd;
public class Client {
public static void main(String[] args) {
Client data = new Client();
data.data();
}
public void data() {
System.out.println("kayd");
}
}
Класс аспекта
package org.kayd;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AspectTest {
@Pointcut("execution(* *(..))")
public void defineEntryPoint() {
}
@Before("defineEntryPoint()")
public void log(JoinPoint joinPoint) {
System.out.println("log");
}
@After("execution(org.kayd.Client.data())")
public void after() {
System.out.println("log");
}
}
AOP.xml
<aspectj>
<aspects>
<aspect name="org.kayd.AspectTest"/>
</aspects>
</aspectj>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.kayd</groupId>
<artifactId>AOP</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>1.8</source>
<target>1.8</target>
<Xlint>ignore</Xlint>
<complianceLevel>${java.version}</complianceLevel>
<encoding>UTF-8</encoding>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Скриншот
Ссылка: я уже изучил эти вопросы, но все еще не работаю.
execution(org.kayd.Client.data())
должен привести к ошибке компиляции, поскольку синтаксис недействителен (для сигнатуры метода не указан возвращаемый тип). Лучше использовать что-то вродеexecution(* org.kayd.Client.data())
илиexecution(void org.kayd.Client.data())
. Это помогает? - person kriegaex   schedule 12.12.2018