Class 名称必须在方法之前,必须是 MatcherAssert.assertThat() 而不仅仅是 assertThat()?

Class name has to be before method, must be MatcherAssert.assertThat() and not just assertThat()?

我正在使用 hamcrest 匹配器进行测试。为什么我必须写

MatcherAssert.assertThat(a, Is.is(b));

不只是这​​个?

assertThat(a, is(b));

当我尝试使用后者时我的程序出错。我真的希望能够使用后者,因为我需要这段代码对于那些并不真正了解如何编码的人来说是可读的。

添加

即可满足您的需求
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;

到文件的导入部分。 Java 语言在 1.5 中引入了静态导入,您可以在这里阅读更多内容:https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

一些编程环境支持为您喜欢的方法和 classes 自动添加静态导入。在 Eclipse 中,转到 Window > Preferences > Java > Editor > Content Assist > Favorites 并在其中添加 MatcherAssert class。