小编Mat*_*zcz的帖子

使用StaticLoggerBinder对类进行单元测试

我有一个像这样的简单类:

package com.example.howtomocktest

import groovy.util.logging.Slf4j
import java.nio.channels.NotYetBoundException

@Slf4j
class ErrorLogger {
    static void handleExceptions(Closure closure) {
        try {
            closure()
        }catch (UnsupportedOperationException|NotYetBoundException ex) {
            log.error ex.message
        } catch (Exception ex) {
            log.error 'Processing exception {}', ex
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想为它写一个测试,这是一个骨架:

package com.example.howtomocktest

import org.slf4j.Logger
import spock.lang.Specification
import java.nio.channels.NotYetBoundException
import static com.example.howtomocktest.ErrorLogger.handleExceptions

class ErrorLoggerSpec extends Specification {

   private static final UNSUPPORTED_EXCEPTION = { throw UnsupportedOperationException }
   private static final NOT_YET_BOUND = { throw NotYetBoundException }
   private static final STANDARD_EXCEPTION = { throw …
Run Code Online (Sandbox Code Playgroud)

groovy unit-testing mocking slf4j spock

9
推荐指数
1
解决办法
4478
查看次数

如何在flyway中挤压/合并迁移

比方说,我有迁移从脚本V1_1V1_300-这是一个相当庞大的数量和花费的时间很长一段时间.但是有时会有一个版本 - 从飞路的角度来看,我可以以某种方式合并所有这些迁移:

  • 所有的迁移V1_1,以V1_300将在一个文件中(例如:V2_1)
  • 这些迁移所花费的时间将减少

手动检查重叠非常耗时.提前感谢您的回答.

oracle flyway

9
推荐指数
1
解决办法
2060
查看次数

在Scala的case类和类字段中使用Optional是否有代码味道?

在Stackoverflow上已经有很多关于在Java 中使用Optional的正确方法的讨论(像这样的讨论,或者这个)

截至目前,在Java中使用Optional作为类成员被广泛认为是一种代码气味,甚至因故意不实现Serializable接口而气馁.此外,我们应该在DTO,构造函数和方法的输入参数中避免它.从视图中的一切OOP点我迄今大约读可选吸引我的原因.

我的问题是,Scala的FP方面是否会以某种方式改变某些东西我们应该使用Optional?特别是因为Scala 中Optional的实现似乎更丰富.我发现很多文章描述了如何在Scala中使用它,但是没有一篇文章在我应该使用它时何时耗尽主题,何时不应该使用它.

java oop functional-programming scala

8
推荐指数
2
解决办法
1029
查看次数

如何在基于eclipse的Spring项目中添加bean配置文件?

我从头开始研究Spring项目,当我尝试添加一个新的Spring bean配置文件时,我只是没有看到它.项目结构和选择向导如下,

在此输入图像描述

图:选择向导中没有Spring部分

在此输入图像描述 图:项目结构

如何在项目中添加bean配置文件?我试图获得一个模板并添加项目.但是,我没有在文件页面中看到不同的选项卡(例如,mvc,context等).maven依赖很好,它是动态的web项目.我还尝试使用maven-archetype-webapp作为项目的起点.

java eclipse spring spring-mvc

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

创建一个具有Spock测试集的Groovy可执行jar,以执行该测试

我想用两个Groovy文件创建jar,AppLogic.groovy由两个少量Groovy类组成,另一个文件创建具有Spock测试套件的AppSpec,我想执行这个Spock类(设置为可执行文件)。如何创建具有所有依赖项的jar?我在这里发现与jUnit类似:如何将(JUnit)测试套件导出为可执行jar,但无法使其适应我的需要。

我使用gradle进行构建,这是我的build.gradle文件:

group 'someGroup'
version '1.0'

apply plugin: 'groovy'
apply plugin: 'java'
apply plugin:'application'

sourceCompatibility = 1.7

repositories {

//some repos here

maven { url "http://repo.maven.apache.org/maven2" }
}

dependencies {
//some dependencies here
}
Run Code Online (Sandbox Code Playgroud)

我浏览时发现了SpockRuntime,但是我不知道是否以及如何使用它来实现我的目标。

groovy jar executable-jar gradle spock

3
推荐指数
1
解决办法
1313
查看次数

替换java中的某些字符

我有一个SQL查询在文本中传递给我,这是它的一部分:

在哪里(t.STIME> CAST(SYSTIMESTAMP AS TIMESTAMP)+ NUMTODSINTERVAL(-86400000*0.001,'SECOND')))t ORDER BY

m_2 ASC,m_1 ASC,t.STIME ASC

我想做的是简单地以我将拥有的方式修改它:

在哪里(t.STIME> CAST(SYSTIMESTAMP AS TIMESTAMP)+ NUMTODSINTERVAL(-86400000*0.001,'SECOND'))订购

m_2 ASC,m_1 ASC,t.STIME ASC)

所以,我需要以某种方式从String中删除:")t"但是如何做到这一点?我总是收到"无与伦比的"'括号,我真的不知道为什么x /

这是我为替换此字符串而编写的方法:

 public static String replaceLast(String string, String toReplace, String replaceWith) {
        int last = string.lastIndexOf(toReplace);
        if (last < 0) return string;
        String ending = string.substring(last).replaceFirst(toReplace, replaceWith);
        return string.substring(0, last) + tail;
   }
Run Code Online (Sandbox Code Playgroud)

然后我试着用这种方式:

 if(sqlToTrim.lastIndexOf("\\) t") > 0){
                replaceLast(sqlToTrim, "\\) t ", " ");
                addLastParanthesis(sqlToTrim);
            }
Run Code Online (Sandbox Code Playgroud)

但它没有被替换,基本上没有任何变化 - replaceLast从未使用过.我假设我搞乱了正则表达式,我搜索了堆栈溢出,但似乎\是我应该放在之前的正确组合).在此先感谢您的帮助.谁能告诉我我做错了什么?

如果你需要知道,为什么我这样做,为什么这样 - 遗留代码......

java regex

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