相关疑难解决方法(0)

如何在Java中轻松模拟静态方法(jUnit4)

如何在Java中轻松模拟静态方法?

我正在使用Spring 2.5和JUnit 4.4

@Service
public class SomeServiceImpl implements SomeService {

    public Object doSomething() {
        Logger.getLogger(this.class); //a static method invoked.
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我不控制我的服务需要调用的静态方法,所以我不能将它重构为更可单元测试.我使用Log4J Logger作为示例,但真正的静态方法类似. 不能更改静态方法.

做Grails工作,我习惯使用类似的东西:

def mockedControl = mockFor(Logger)
mockControl.demand.static.getLogger{Class clazz-> … }
…
mockControl.verify()
Run Code Online (Sandbox Code Playgroud)

我如何在Java中做类似的事情?

java spring static mocking

15
推荐指数
2
解决办法
2万
查看次数

试图在Spring WebFlow Project的服务级别上运行junit测试.假设$ AssumptionViolatedException

我试图在Eclipse中使用junit在Eclipse Web Flow Project上运行我的第一个测试,并且还使用mvn测试从控制台运行,但是给了我同样的错误.

java.lang.NoClassDefFoundError:org/junit/Assume $ AssumptionViolatedException

这是我的java代码:

package org.uftwf.memberinquiry.text;

import junit.framework.Assert;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.uftwf.memberinquiry.model.MemberInquiryInformation;
import org.uftwf.memberinquiry.model.MemberRequest;
import org.uftwf.memberinquiry.service.MemberInquiryService;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:root-config.xml")
public class TestApp {

    @Autowired
    private MemberInquiryService service;

    @Test
    public void testgetMemeberRequestInformation() {

        MemberRequest inMemberRequest = new MemberRequest();

        MemberInquiryInformation testInfo = service.getMemeberRequestInformation(inMemberRequest);

        inMemberRequest.setRequestor("cpilling04@aol.com.dev");


        Assert.assertEquals(testInfo.getFirst_Name(), "Christine");
        Assert.assertEquals(testInfo.getLast_Name(), "Pillings");
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的pox.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.uftwf.memberinquiry</groupId>
    <artifactId>MemberInquiry</artifactId>
    <name>Member Inquiry</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>

    <developers>
        <developer>
            <id>jsmith</id> …
Run Code Online (Sandbox Code Playgroud)

java junit spring spring-mvc spring-webflow

3
推荐指数
2
解决办法
7833
查看次数

标签 统计

java ×2

spring ×2

junit ×1

mocking ×1

spring-mvc ×1

spring-webflow ×1

static ×1