小编Ama*_*a_A的帖子

EasyMock期望方法在同一测试中返回多个不同的对象

我正在使用EasyMock对我的Java代码进行单元测试.我正在尝试测试的类是RESTful webservice API层.API有一个底层服务层,在API测试中被模拟.我的问题是弄清楚如何正确地单元测试我的editObject(ID, params...)API方法,因为它调用service.getById()两次并期望每次调用都返回一个不同的对象.

editObject(ID, params...)首先尝试从服务层获取对象以确保ID有效(首先service.getById(ID)调用expect,返回原始未修改对象).接下来,它修改API调用中指定的参数,将其保存到服务,然后再次调用get将调用者交给服务管理的修改对象(第二次service.getbyId(ID)调用expect,返回修改后的对象).

有没有办法用EasyMock表示这个?

java unit-testing easymock

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

Maven:在包期间执行antrun任务

我需要使用Maven antrun插件将Hibernate字节码检测添加到我的一个Java类中,以便启用单个字段的延迟加载.但是,我无法在构建周期中获取插件.

如何在编译之后但在mvn package构建期间打包之前指示Maven执行antrun插件?

当前的pom.xml(片段):

<pluginManagement>
    <plugins>
    ...
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <inherited>false</inherited>
            <executions>
                <execution>
                    <id>default-cli</id>
                    <configuration>
                        <target>
                            <echo message="Running instrumentation task"/>
                            <taskdef name="instrument" classname="org.hibernate.tool.instrument.javassist.InstrumentTask">
                                <classpath>
                                    <path refid="maven.dependency.classpath" />
                                    <path refid="maven.plugin.classpath" />
                                </classpath>
                            </taskdef>
                            <instrument verbose="true">
                                <fileset dir="target/classes">
                                    <include name="**/UploadedFile.class" />
                                </fileset>
                            </instrument>
                        </target>
                    </configuration>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-core</artifactId>
                    <version>${hibernate.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                    <version>${javassist.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-simple</artifactId>
                    <version>${org.slf4j-version}</version>
                </dependency>
            </dependencies>
        </plugin>
    ...
    </plugins>
</pluginManagement>
Run Code Online (Sandbox Code Playgroud)

我在这个问题上看到的所有文档都显示插件被配置为在"进程类"阶段运行.但是,从Maven 文档来看,"进程类"阶段似乎不是构建周期的一部分package.我可以自己运行插件mvn antrun:run …

java hibernate maven maven-antrun-plugin

4
推荐指数
1
解决办法
2576
查看次数