草庐IT

java - 当我将多个自定义匹配器分配给一个方法时,Mockito 的行为很奇怪

我想为一个方法使用两个自定义匹配器。基本上,如果我传递方法VALUE_A,我希望它返回RESULT_A,如果我传递它VALUE_B,我希望它返回RESULT_B。所以这是一段代码摘录:classIsNonEmptyextendsArgumentMatcher{publicbooleanmatches(Objectget){//Forsomereason,thismethodiscalledwhenIassigntheIsEmptymatchertoMockHtable.get()//Whenthishappens,thevalueofthegetargumentisnull,sothi

java - 模式/匹配器 Java,非零组计数但错误检索?

我的matcher.groupCount()给了我4,但是当我使用matcher.group(0)时,...,matcher.group(0),它给我一个错误。以下是我的代码:Patternpattern=Pattern.compile("([0-9]+).([0-9]+).([0-9]+).([0-9]+)");Matchermatcher1,matcher2;GeoIP[0][0]=(GeoIP[0][0]).trim();GeoIP[0][1]=(GeoIP[0][1]).trim();System.out.println(GeoIP[0][0]);System.out.prin

java - Easymock 使用日期期望

我正在用easymock模拟一个在其主体中有日期的方法,如下所示:publicvoidtestedMethod(){...if(doSomething(newDate())){...}我的测试是这样的:publicvoidtestThatMethod(){...expect(testedClass.testedMethod(newDate())).andReturn(false);...}但是当我运行测试时,有时会出现这样的错误:UnexpectedmethodcalltestedMethod(ThuJan2809:45:13GMT-03:002010):testedMethod(Th

java - 简单的 Java 正则表达式匹配器不工作

代码:importjava.util.regex.*;publicclasseq{publicstaticvoidmain(String[]args){Stringstr1="some=String&Here&modelId=324";Patternrex=Pattern.compile(".*modelId=([0-9]+).*");Matcherm=rex.matcher(str1);System.out.println("id="+m.group(1));}}错误:Exceptioninthread"main"java.lang.IllegalStateException:Nom

java - 如何在附加条件下使用 Spring Data JPA 示例匹配器

我正在尝试使用SpringJPA的示例来进行搜索。有了下面的代码,大部分都符合要求。publicPagefindShops(Shopcondition,Pageablepageable){ExampleMatchermatcher=ExampleMatcher.matching().withStringMatcher(StringMatcher.CONTAINING).withIgnoreCase();returnshopDao.findAll(Example.of(condition,matcher),pageable);}此外,我只需要状态不等于DELETED的SHOP。比如,.w

java - 匹配器在匹配后抛出 IllegalStateException

我在使用Matches时遇到了一些奇怪的问题,希望有人能提供一些帮助。根据Java文档:publicbooleanmatches()...Ifthematchsucceedsthenmoreinformationcanbeobtainedviathestart,end,andgroupmethods.部分代码:privatestaticHashtablesplitAddress(Stringaddress){Hashtableresult=newHashtable();Matcherm=addrLong.matcher(address);if(m.matches()){result.p

java - 是否有用于 varargs 数组的 Mockito eq 匹配器?

我在尝试匹配作为参数传递给接收可变参数数组的方法的数组时遇到问题。其他问题/答案中提到的anyVararg()匹配器对我不起作用,因为我想确保提供的数组是我需要的。我将问题简化为这个更容易理解和抽象问题的示例(我的真正问题是生产代码并且具有业务逻辑,因此对于这个问题的目的来说会造成混淆):@RunWith(MockitoJUnitRunner.class)publicclassUnitTest{privateObject[]objectArray;privateListexpected;privateTestTargettarget;@BeforepublicvoidsetUp(){o

java - 如何实现 hamcrest 匹配器

我想运行这行代码:assertThat(contextPin.get(),equalTo(pinPage.getPinObjFromUi()));但我想打印到日志中以提供信息这意味着我可以知道哪些字段不相等。所以我想到了实现一个匹配器。我用谷歌搜索过,但写不正确因为我的方法无法将actual和expected对象放在一起。这是我的代码:我怎样才能把它写干净?publicclassPinMatcherextendsTypeSafeMatcher{privatePinactual;privateObjectitem;publicPinMatcher(Pinactual){this.actu

java - 模棱两可的 Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException)

我遇到了一个非常奇怪的问题。URL="/my/specific/url/";when(this.restHelperMock.post(eq(myEnum),eq(this.config.apiEndpoint()+URL),any(JSONObject.class))).thenReturn(newJSONObject(myDesiredJsonContent));甚至包含URL="/my/specific/url/";when(this.restHelperMock.post(eq(myEnum),contains(this.config.apiEndpoint()+URL),an

java - 行首 (^) 和行尾 ($) 的正则表达式边界匹配器不起作用

我有一个模式,使用^和$来指示行的开始和结束。Patternpattern=Pattern.compile("^Key2=(.+)$");然后像这样输入:Stringtext="Key1=Twasbrillig,andtheslithytoves"+"\nKey2=Didgyreandgimbleinthewabe."+"\nKey3=Allmimsyweretheborogroves."+"\nKey4=Andthemomerathsoutgrabe.";但是pattern.matcher(text).find()返回false。这不应该工作吗?在Patternclassdocume