草庐IT

unit-testing - 如何模拟 http.Client Do 方法

我正在尝试寻找一种解决方案来编写测试和模拟HTTP响应。在我接受接口(interface)的函数中:typeHttpClientinterface{Do(req*http.Request)(*http.Response,error)}我使用基本身份验证发出http获取请求funcGetOverview(clientHttpClient,overview*Overview)(*Overview,error){request,err:=http.NewRequest("GET",fmt.Sprintf("%s:%s/api/overview",overview.Config.Url,ove

java - 如何将传递给 Class<T> 参数的 null 与 Mockito 匹配

我有这样的方法:publicmethod(Strings,Classt){...}在为其他参数使用匹配器时,我需要检查null是否传递给第二个参数,我一直在这样做:@SuppressWarnings("unchecked")verify(client).method(eq("String"),any(Class.class));但是有没有更好的方法(没有抑制警告)?T代表一些其他方法的返回类型,有时是void并且在这些情况下null被传入。 最佳答案 Mockito有一个isNullmatcher,您可以在其中传入类的名称。所以如果

java - 如何将传递给 Class<T> 参数的 null 与 Mockito 匹配

我有这样的方法:publicmethod(Strings,Classt){...}在为其他参数使用匹配器时,我需要检查null是否传递给第二个参数,我一直在这样做:@SuppressWarnings("unchecked")verify(client).method(eq("String"),any(Class.class));但是有没有更好的方法(没有抑制警告)?T代表一些其他方法的返回类型,有时是void并且在这些情况下null被传入。 最佳答案 Mockito有一个isNullmatcher,您可以在其中传入类的名称。所以如果

java - Java 8 的 java.time API 中的模拟时间

JodaTime有一个不错的DateTimeUtils.setCurrentMillisFixed()mock时间。在测试中非常实用。Java8'sjava.timeAPI中是否有等价物?? 最佳答案 最接近的是Clock对象。您可以使用您想要的任何时间(或从系统当前时间)创建一个时钟对象。所有date.time对象都重载了now方法,这些方法采用时钟对象代替当前时间。所以你可以使用依赖注入(inject)来注入(inject)一个具有特定时间的时钟:publicclassMyBean{privateClockclock;//dep

java - Java 8 的 java.time API 中的模拟时间

JodaTime有一个不错的DateTimeUtils.setCurrentMillisFixed()mock时间。在测试中非常实用。Java8'sjava.timeAPI中是否有等价物?? 最佳答案 最接近的是Clock对象。您可以使用您想要的任何时间(或从系统当前时间)创建一个时钟对象。所有date.time对象都重载了now方法,这些方法采用时钟对象代替当前时间。所以你可以使用依赖注入(inject)来注入(inject)一个具有特定时间的时钟:publicclassMyBean{privateClockclock;//dep

java - 使用 Mockito 模拟类的成员变量

我是开发新手,尤其是单元测试新手。我想我的要求很简单,但我很想知道其他人对此的想法。假设我有两个这样的类(class)-publicclassFirst{Secondsecond;publicFirst(){second=newSecond();}publicStringdoSecond(){returnsecond.doSecond();}}classSecond{publicStringdoSecond(){return"DoSomething";}}假设我正在编写单元测试来测试First.doSecond()方法。但是,假设我想像这样模拟Second.doSecond()类。我正

java - 使用 Mockito 模拟类的成员变量

我是开发新手,尤其是单元测试新手。我想我的要求很简单,但我很想知道其他人对此的想法。假设我有两个这样的类(class)-publicclassFirst{Secondsecond;publicFirst(){second=newSecond();}publicStringdoSecond(){returnsecond.doSecond();}}classSecond{publicStringdoSecond(){return"DoSomething";}}假设我正在编写单元测试来测试First.doSecond()方法。但是,假设我想像这样模拟Second.doSecond()类。我正

java - 使用 Mockito 从模拟中抛出已检查的异常

我试图让我的一个模拟对象在调用特定方法时抛出一个检查异常。我正在尝试以下方法。@Test(expectedExceptions=SomeException.class)publicvoidthrowCheckedException(){Listlist=mock(List.class);when(list.get(0)).thenThrow(newSomeException());Stringtest=list.get(0);}publicclassSomeExceptionextendsException{}但是,这会产生以下错误。org.testng.TestException:E

java - 使用 Mockito 从模拟中抛出已检查的异常

我试图让我的一个模拟对象在调用特定方法时抛出一个检查异常。我正在尝试以下方法。@Test(expectedExceptions=SomeException.class)publicvoidthrowCheckedException(){Listlist=mock(List.class);when(list.get(0)).thenThrow(newSomeException());Stringtest=list.get(0);}publicclassSomeExceptionextendsException{}但是,这会产生以下错误。org.testng.TestException:E

java - 如何正确匹配 Mockito 中的可变参数

我一直在尝试使用Mockito模拟具有可变参数参数的方法:interfaceA{Bb(intx,inty,C...c);}Aa=mock(A.class);Bb=mock(B.class);when(a.b(anyInt(),anyInt(),any(C[].class))).thenReturn(b);assertEquals(b,a.b(1,2));这不起作用,但是如果我这样做:when(a.b(anyInt(),anyInt())).thenReturn(b);assertEquals(b,a.b(1,2));这可行,尽管我在stub方法时完全省略了可变参数参数。有什么线索吗?