我有以下代码:
package osu.cs362.URLValidator;
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.*;
import static org.mockito.Mockito.*;
public class DomainValidatorTest {
RegexValidator rev = mock(RegexValidator.class);
}
这包括包含osu.cs362.URLValidator
。
RegexValidator
但是,在运行mvn test
时,我得到了:
找不到符号类RegexValidator
为什么不能找到这门课?这是pom.xml
问题吗?
答案 0 :(得分:1)
您应该将DomainValidatorTest.java
移至目录:
src/test/java/osu/cs362/URLValidator
目录结构应与java包相同。
答案 1 :(得分:1)
这不是Maven的问题。
如果RegexValidator
类有这样的声明:
package osu.cs362.URLValidator;
public class RegexValidator {
...
}
你不会有问题。所以我想情况并非如此
此外,filesytem文件夹不是Java包。例如,没有人阻止您在文件夹中声明您的类:
您的classpath文件夹的osu/cs362
,并声明该类的包:fictive.folder
该课程将编译。
DomainValidatorTest
就属于这种情况。该包与文件夹布局不对称,但该类由编译器找到,并且不会导致编译错误。
但当然,这是一种不好的做法,这是误导。这就是为什么包应始终与文件夹布局对称的原因。