小编Alv*_*aza的帖子

Mockito验证只调用了一个预期的方法

我正在一个项目中工作,有一个Service类和一个Client充当外观的东西(不知道它是否是设计模式世界中的正确术语,但我会尽力使自己清楚).Service方法可能非常昂贵,因为它们可能与一个或多个数据库进行通信,长检查等等,因此每个Client方法都应该调用一个且只能调用一个Service方法.

Service 类结构是这样的

public class Service {
    public void serviceA(){...}
    public SomeObject serviceB(){...}
    // can grow in the future
}
Run Code Online (Sandbox Code Playgroud)

而且Client应该是这样的

public class Client {
    private Service myService; // Injected somehow
    public void callServiceA() {
        // some preparation
        myService.serviceA();
        // something else
    }

    public boolean callServiceB(){...}
}
Run Code Online (Sandbox Code Playgroud)

在测试课中,Client我希望有类似的东西

public class ClientTest{
    private Client client; // Injected or instantiated in @Before method
    private Service serviceMock …
Run Code Online (Sandbox Code Playgroud)

java mockito

12
推荐指数
1
解决办法
9136
查看次数

Wildfly 10 未显示调试消息

我正在容器上测试我的 ear 应用程序,我需要查看我在应用程序上传播的一些调试消息。我正在使用slf4j-apiwithlog4j作为日志记录框架。

在我的测试阶段(在容器外),所有日志都运行良好,所以配置很好。但是现在我已经使用相同的配置部署了应用程序,但是我的消息没有显示。这是我的 log4j 的配置:

#rootLogger config
log4j.rootLogger=INFO, console

#appender config
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console..threshold=DEBUG
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} [%t] %p %l - %m%n

# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=INFO

#application logger config
log4j.logger.ar.edu.unt.sigea=DEBUG, console
Run Code Online (Sandbox Code Playgroud)

正如我所说,当我运行我的@Test方法时,我的所有logger.debug()消息都正确显示,但是现在我在具有相同配置的容器上运行,没有显示调试消息。

我找到了这篇文章log4j.appender.console..threshold=DEBUG按照答案的建议添加了该行,但没有用。

我正在Wildfly-10.0.0.Final应用服务器上进行部署,并且我正在使用此日志记录依赖项:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我应该去哪里寻找?预先感谢您的回答

java debugging logging log4j wildfly

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

声纳排除/包含

我正在尝试改善项目的覆盖率报告,并且希望排除某些包,但包括子包。例如,我有这种结构

src/main/java/com/myapp
    ? model
        ? mapper
            ? SomeMapperClass.java
        ? SomeModelClass.java --> exclude this and others...
        ? ...
        ? ClassToInclude.java --> but include this
    ? service
Run Code Online (Sandbox Code Playgroud)

我想排除model包,但包括mapperClassToInclude。有什么方法可以不必逐个添加每个排除的类吗?我想要这样的东西pom.xml

<sonar.coverage.exclusions>
    **/model/**/*.java
</sonar.coverage.exclusions>
<sonar.coverage.inclusions>
    **/model/mapper/**/*.java
    **/model/ClassToInclude.java
<sonar.coverage.inclusions>
Run Code Online (Sandbox Code Playgroud)

任何帮助,指南,选项和/或解决方法,我们感激不尽。预先感谢您的回答。

更新#1

我通过以下方法找到了一种仅使用sonar.coverage.exclusions属性包括子包的方法:

<sonar.coverage.exclusions>
    **/model/*.java
</sonar.coverage.exclusions>
Run Code Online (Sandbox Code Playgroud)

这样,您就可以排除,model但不能排除的每个班级model.mapper。现在,我只需要一种方法来解决如何在排除的程序包中包含特定的类。

java code-coverage maven sonarqube

5
推荐指数
1
解决办法
4289
查看次数

Maven 构建带有依赖项的 jar

我正在使用 Maven Swing 应用程序,但在构建时遇到了一些问题。

环境

我正在使用 Netbeans 8.2 作为我的 IDE 和 Jasper Reports 库来开发我的应用程序,以根据编译.jasper文件生成一些 PDF 报告,这些文件是使用 Jaspersoft Studio 6.3.1 单独生成的,然后在我的项目中用作资源。

我的项目的pom如下(具有相关信息的专家):

<project>
    <!-- Needed for jasperreports-functions -->
    <repositories>
        <repository>
            <id>jr-ce-releases</id>
            <url>http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>6.4.0</version>
        </dependency>

        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports-functions</artifactId>
            <version>5.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.4.12</version>
        </dependency>

        <!-- The driver I need for connecting to my DB -->
        <dependency>
            <groupId>com.ibm.informix</groupId>
            <artifactId>jdbc</artifactId>
            <version>4.10.8.1</version>
        </dependency>

        <!-- some other test dependencies -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version> …
Run Code Online (Sandbox Code Playgroud)

java dependency-management maven

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