Tag: easymock

如何模拟HttpServletRequest?

我有一个查找查询参数并返回布尔值的函数: public static Boolean getBooleanFromRequest(HttpServletRequest request, String key) { Boolean keyValue = false; if(request.getParameter(key) != null) { String value = request.getParameter(key); if(keyValue == null) { keyValue = false; } else { if(value.equalsIgnoreCase(“true”) || value.equalsIgnoreCase(“1”)) { keyValue = true; } } } return keyValue; } 我的pom.xml中有junit和easymock,如何模拟HttpServletRequest?

对IO进行JUnit测试

我是新来的,也是junit测试的新手。 我有一个有两种方法的类,我想为它编写unit testing。 我不知道如何开始我阅读一些基本的教程,但我无法开始如何。 你们中的任何人都可以为我提供一些基本的骨架。 我的课是 public class CreateCSV { MyWriter csvOutput = null; public void createSortedSet ( final HashMap map, final long totalSize, final long totalSizewithHeader, File file ) { ArrayList messages = new ArrayList(); try { messages.addAll( map.values() ); map.clear(); for ( Signal signal : messages ) { signal.setBandwidth( ( signal.getSize() / ( […]

EasyMock和测试受保护的方法

尝试使用EasyMock测试受保护的方法是否被调用,不确定这是否是最好的方法…但是如下所示,我如何判断调用callMe()时是否实际调用了didIgetCalled()? public Class testMe(){ public int callMe(){ if(true){ didIgetCalled(); } return 1; } protected int didIgetCalled(){ return 2; } }

使用EasyMock模拟一个具体的类

可能吗? 我该怎么做?

用于类数据类型的EasyMock匹配器

我正在做这个和easymock语法的噩梦: public void foo(Class clazz); EasyMock.expects(object.foo(EasyMock.isA(???))); 如果我的参数是String.class,我该怎么办? 我最初想: EasyMock.isA(((Class)(String.class)).getClass()) 然而,当我调用foo(String.class)时,我得到: java.lang.IllegalStateException: missing behavior definition for the preceding method call:

在测试中模拟EJB注入

每当我想测试一个使用资源注入的类时,我最终会包含一个只在测试中使用的构造函数: public class A { @EJB B b; // Used in tests to inject EJB mock protected A(B b) { this.b = b; } public A() {} // Method that I wish to test public void foo() { b.bar(); } } 是否存在另一种模拟资源注入的方法,或者这是正确的模式?

Javaunit testing无法访问ResourceBundle

我正在创建一个Javaunit testing来测试我最近更改的一些代码。 但是,我正在测试的方法实例化一个使用ResourceBundle的类… ResourceBundle.getBundle(“businessVariables”).getString(“product.name”)); 资源文件位于Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties的Web包中 我的测试存在于Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java xml包中 在正常运行时,资源包可以访问,但不能在我的unit testing运行时访问。 它抛出了这个错误…… Testcase: testCreateInitialStatusResponse(uk.co.mycompany.xmlapi.RequestProcessorTestNew): Caused an ERROR null java.lang.reflect.InvocationTargetException at uk.co.mycompany.xmlapi.RequestProcessorTestNew.testCreateInitialStatusResponse(RequestProcessorTestNew.java:62) Caused by: java.lang.ExceptionInInitializerError at uk.co.mycompany.xmlapi.RequestProcessorImpl.createInitialStatusResponse(RequestProcessorImpl.java:812) Caused by: java.util.MissingResourceException: Can’t find bundle for base name businessVariables, locale en_US 我该怎么办? 我可以启用测试以某种方式查看资源包吗? 我可以在某处以某种方式创建一个模拟资源文件,代码将能够看到吗?

使用Groovy进行Javagenerics和重载

我使用Groovy,JUnit和EasyMock为我的Java应用程序编写unit testing。 在EasyMock中有几个重载方法capture()已被弃用,注意“由于更难的擦除强制执行,不能在Java 7中编译”。 这些方法将Capture类型的对象作为参数。 除其他外,存在以下方法: static boolean capture(Capture captured) static boolean capture(Capture captured) … static T capture(Capture captured) 在Java中不再允许这样做,但是如果直接从Java调用该代码,则会调用正确的方法。 例如,当您执行此代码时 Capture myClassCapture = new Capture(); mockObject.someMethod(capture(myClassCapture)); 调用正确的方法(列表中的最后一个)。 另一方面,如果从Groovy内部调用相同的代码,则会调用列表中的第一个方法,并在测试中出错。 我认为这与Java和Groovy如何解决这些方法有关。 我的假设是Java在编译时绑定方法,而Groovy试图在运行时找到该方法并采用它可以找到的任何方法(可能是第一个)。 任何人都能解释到底发生了什么吗? 这样可以更精确地理解Java和Groovy之间的不同行为。 我通过将Groovy中的调用委托给Java方法来修复它,它将为我完成这项工作: public class EasyMockUtils { public static T captureObject(Capture captureForObject) { return EasyMock.capture(captureForObject); } } 可能有更好的方法吗?

EasyMock:在java中模拟一个构造函数调用

我在这个板上看了类似的问题,但没有一个回答我的问题。 这听起来很奇怪,但是可以在你正在嘲笑的对象上模拟一个构造函数调用。 例: class RealGuy { …. public void someMethod(Customer customer) { Customer customer = new Customer(145); } } class MyUnitTest() { public Customer customerMock = createMock(Customer.class) public void test1() { //i can inject the mock object, but it’s still calling the constuctor realGuyobj.someMethod(customerMock); //the constructor call for constructor makes database connections, and such. } […]

测试使用EasyMock调用void方法

这可能吗? 我尝试使用EasyMock.expectLastCall().times(0); 但EasyMock抱怨时间必须> = 1