Tag: 嘲笑

InjectMocks对象的org.mockito.exceptions.misusing.NotAMockException

我试图模拟一个方法的返回值,但我得到NotAMockException 。 @InjectMocks private MyService myService; @Mock private OtherServiceUsedInMyServiceAsAutowired otherServiceUsedInMyServiceAsAutowired; 在MyService我有一个名为myMethod()的方法,我希望在调用此方法时返回虚拟对象。 doReturn(someDummyObject).when(myService).myMethod(any(), any(), any()); 那时我得到了错误。 我究竟做错了什么? 完整错误: org.mockito.exceptions.misusing.NotAMockException: Argument passed to when() is not a mock! Example of correct stubbing: doThrow(new RuntimeException()).when(mock).someMethod();

在Java中,我可以从Class对象创建匿名子类的实例吗?

我有一个工厂方法,可以创建在unit testing中使用的对象。 这些对象都派生自相同的基类: public static T modMake(Class clazz) { try { return clazz.newInstance(); } catch (InstantiationException e) { // Should never happen throw new AssertionError(e); } catch (IllegalAccessException e) { // Should never happen throw new AssertionError(e); } } 现在我想从该基类覆盖一个getter方法,但仅用于测试。 我通常会使用匿名类来做到这一点,例如( Node是BaseEntity的子字节之一): public static Node nodMake() { return new Node() { @Override public long ixGet() […]

在java中模拟https请求

假设我正在编写一个应用程序,我需要能够执行以下操作: String url = “https://someurl/”; GetMethod method = new GetMethod(URLEncoder.encode(url)); String content = method.getResponseBodyAsString(); 有没有办法提供一个模拟服务器让我处理https请求? 我正在寻找的是一种编写unit testing的方法,但是我需要能够模拟实际发布到https:// someurl的部分,这样我才能得到已知的响应。

RESTEasy Mock vs. Exception Mapper vs. Context

RESTEasy模拟框架在没有exception映射器的情况下工作正常 – 收到请求并返回具有预期内容的实体。 注册exception映射器并强制exception后,当RESTEasy的内部调用ResteasyProviderFactory.getContextData(type)时调用失败,返回null,导致意外的错误消息:“无法找到类型的上下文数据:javax.servlet.http.HttpServletRequest” 。 无法在网上任何地方找到RESTEasy模拟加上exception映射器的任何示例,也无法找到有关错误的任何有用信息。 客户类: package com.foo; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “foo-type”, propOrder = { “name” }) @XmlRootElement(name = “foo”) public class Foo { protected String name; public String getName() { return name; } public void setName(String value) { this.name = value; } } 对象工厂: package […]

的Mockito; 使用list调用verify方法,忽略列表中元素的顺序

我有一个类(ClassA)来获取目录中的文件。 它扫描给定目录中与正则表达式匹配的文件。 对于每个匹配的文件,它将文件对象添加到列表中。 处理完目录后,它会将文件列表传递给另一个类(ClassB)进行处理 我正在为ClassA编写unit testing,因此使用Mockito模拟ClassB,并将其注入ClassA。 然后我想在不同的场景中validation传递给ClassB的列表的内容(即我的模拟) 我已经将代码删除了以下内容 public class ClassA implements Runnable { private final ClassB classB; public ClassA(final ClassB classB) { this.classB = classB; } public List getFilesFromDirectories() { final List newFileList = new ArrayList(); // … return newFileList; } public void run() { final List fileList = getFilesFromDirectories(); if (fileList.isEmpty()) { //Log […]

mockito ArrayList 问题

我有一个方法,我试图进行unit testing。 此方法将参数作为ArrayList并使用它执行操作。 我试图定义的模拟是: ArrayList mocked = mock(ArrayList.class); 这给出了[未经检查]未经检查的转换“警告。 ArrayList mocked = mock(ArrayList.class); 给我一个错误。 任何人都想关心我做错了什么?

用Java模拟URL

我们在我们想要模拟的一个Java类中有一个URL对象,但它是一个最终类,所以我们不能。 我们不希望达到上述水平,并模拟InputStream,因为这仍然会给我们留下未经测试的代码(我们有严格的测试覆盖标准)。 我已经尝试了jMockIt的reflectionfunction,但我们在Mac上运行,并且Java代理处理程序存在一些我无法解决的问题。 那么在junit测试中是否有任何不涉及使用真实URL的解决方案?

如何通过模拟其中的一个或多个方法来测试Akka Actorfunction

我很想知道如何通过在Actor中模拟一些方法 ( 用mocked替换真实对象/ actor的方法实现 )来测试Akka Actorfunction。 我用akka.testkit.TestActorRef ; 另外:我试图使用SpyingProducer但目前尚不清楚如何使用它。 (就像我,如果我在其实现中创建了actor,它将与我现在一样)。 谷歌搜索结果不是很冗长 。 我使用powemockito和java 。 但是这没关系。 我很想知道how to do it in principle 任何语言框架下使用任何语言 (所以如果你不知道power / mockito如何工作只是提供你的代码..(请)或完全了解你将如何使用你知道的工具。) 所以,假设我们有一个要测试的Actor: package example.formock; import akka.actor.UntypedActor; public class ToBeTestedActor extends UntypedActor { @Override public void onReceive(Object message) throws Exception { if (message instanceof String) { getSender().tell( getHelloMessage((String) message), getSelf()); } } […]

validationunit testing中私有方法调用的顺序

我有以下课程: class MyClass { public void doIt() { methodOne(); methodTwo(); methodThree(); } private void methodOne() { // … } // rest of methods similar… } 我的目的是validation当我调用doIt()时,将按顺序调用方法metodOne(),methodTwo()和methodThree()。 我正在使用mockito进行嘲弄。 有谁知道我如何测试这种情况?

使用Scanner对用户输入进行junit测试

我必须在类中测试一个方法,该方法使用Scanner类进行输入。 package com.math.calculator; import java.util.Scanner; public class InputOutput { public String getInput() { Scanner sc = new Scanner(System.in); return sc.nextLine(); } } 我想使用JUnit测试它,但不知道如何做到这一点。 我尝试使用以下代码,但它不会工作。 package com.math.calculator; import org.junit.Test; import static org.junit.Assert.assertEquals; public class InputOutputTest { @Test public void shouldTakeUserInput() { InputOutput inputOutput= new InputOutput(); assertEquals(“add 5”, inputOutput.getInput()); } } 我也想和Mockito一起尝试(使用模拟……当…然后返回)但不知道该怎么做。