欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

how to fix "org.hamcrest.CoreMatchers.containsString cannot be resolved" 博客分类: Java java 

程序员文章站 2024-03-13 14:50:45
...
背景:
山姆大叔比较喜欢用一些新的技术和新的特性,最近在junit test的代码中,用到了containsString(String subString) 方法。
这个方法主要是用来创建一个包含了subString字符串的Matcher,通常的用法是:
assertThat("myStringOfNote", containsString("ring"));
即:assert一个信息,如果containsString 返回的Matcher中包含于“myStringOfNote”字符串中, 那么这个就不会抛异常;否则就会抛出类似:
 java.lang.AssertionError: 
 Expected: (a string containing "color" or a string containing "colour")
      got: "Please choose a font"

具体到这个assert的用法可以更多地去看官网的例子。
我这里是要说的是:同样的代码,我直接get latest revision 到我本地的时候,别人的可以跑,但是在我自己这里就不能编译,出现方法找不到的错误:
The import org.hamcrest.CoreMatchers.containsString cannot be resolved


解决方案:
我找到了同事的代码,对比看了,都是一样的。 刚开始以为是jdk版本不一致导致的问题。
方案1: 于是就改成了我同事一样版本的jdk,还是不能解决。
方案2: 去找到相应的jar,于是我找到hamcrest-all-1.3.jar,也都是有的。但是在我搜索hamcrest的时候,我的同事的jar包依赖来有一个:hamrest-core:1.3 的jar。如下:

how to fix "org.hamcrest.CoreMatchers.containsString cannot be resolved" 
            
    
    博客分类: Java java 
而我的pom依赖树里没有这个jar,我很苦恼,为什么会出现这样的情况,而是我把本地repository的junit-4.11.jar删除掉,然后重新从服务器上拿到这个jar,这一次果然能拿到hamrest-core的依赖的。成功解决这个问题。

how to fix "org.hamcrest.CoreMatchers.containsString cannot be resolved" 
            
    
    博客分类: Java java 

----EOF----

  • how to fix "org.hamcrest.CoreMatchers.containsString cannot be resolved" 
            
    
    博客分类: Java java 
  • 大小: 11.4 KB
相关标签: java