小编dev*_*ang的帖子

Mockito:InvalidUseOfMatchersException

我有一个执行DNS检查的命令行工具.如果DNS检查成功,则命令继续执行其他任务.我正在尝试使用Mockito为此编写单元测试.这是我的代码:

public class Command() {
    // ....
    void runCommand() {
        // ..
        dnsCheck(hostname, new InetAddressFactory());
        // ..
        // do other stuff after dnsCheck
    }

    void dnsCheck(String hostname, InetAddressFactory factory) {
        // calls to verify hostname
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用InetAddressFactory来模拟类的静态实现InetAddress.这是工厂的代码:

public class InetAddressFactory {
    public InetAddress getByName(String host) throws UnknownHostException {
        return InetAddress.getByName(host);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的单元测试用例:

@RunWith(MockitoJUnitRunner.class)
public class CmdTest {

    // many functional tests for dnsCheck

    // here's the piece of code that is failing
    // in this test …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mockito

121
推荐指数
3
解决办法
14万
查看次数

Oracle:将序列设置为特定值

我正在使用liquibase来管理我的架构.我有一堆插入语句.我已经硬编码了primary-id号码.完成所有插入操作后,我想将序列值更改为比表中主键的最大值多1.为此,我写了一个PL/SQL,如下所示.但是,当我执行select ArtifactTypes_id_seq.nextval from dual;它时仍然增加0.

SET SERVEROUTPUT ON SIZE 1000000
DECLARE
    sequence_id NUMBER;
BEGIN

    SELECT NVL(MAX(idArtifactType), 0) + 1 INTO sequence_id FROM ArtifactTypes;
    EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id;
    EXECUTE IMMEDIATE 'SELECT ArtifactTypes_id_seq.nextval FROM dual';
    EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 1';
    DBMS_OUTPUT.put_line('Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id || '"');
END;
/
Run Code Online (Sandbox Code Playgroud)

DBMS_OUTPUT提供以下输出 -
Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 71"

我错过了什么?我做错了吗?注意:我尝试从SQLDeveloper执行这些SQL.

plsql oracle11g

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

Postgresql 9.1:错误:类型"citext"不存在

我试图通过PgAdmin实用程序执行以下查询.

CREATE TABLE svcr."EventLogs" ("eventId" BIGINT NOT NULL, 
"eventTime" TIMESTAMP WITH TIME ZONE NOT NULL, "userid" CITEXT, 
"realmid" CITEXT NOT NULL, "onUserid" CITEXT, "description" TEXT, 
CONSTRAINT eventlogs_pkey PRIMARY KEY ("eventId"));
Run Code Online (Sandbox Code Playgroud)

我得到以下错误 -

ERROR: type "citext" does not exist
SQL state: 42704
Character: 120
Run Code Online (Sandbox Code Playgroud)

但是,以下查询运行正常 -

CREATE TABLE svcr."CategoryMap" ("category" INT NOT NULL, 
"userData" INT NOT NULL);
Run Code Online (Sandbox Code Playgroud)

第一个查询有什么问题?

database postgresql-9.1

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

PostgreSQL:CITEXT 类型的最大列长度是多少

我正在将 PostgreSQL9.1 架构迁移到 Oracle11g。我无法在线找到 CITEXT 类型列的最大列长度是多少。使用 VARCHAR2 类型时,Oracle 应该设置什么大小。

注意:我知道 CITEXT 提供不区分大小写的比较,但是,我对此不太关心。

oracle11g postgresql-9.1

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

Spring 3.1:登录后无法正常重定向

我有一个页面,其中包含指向应用程序中其他页面的多个链接.当用户访问网站时,显示系统页面,即使用户未登录也可以访问.但是,如果用户点击其他链接,则需要用户登录,用户被正确地重定向到登录页面.但是,登录后,用户不会被重定向到单击的链接,而是将用户带到系统页面(系统页面是默认目标URL).

这是spring配置文件的片段 -

<logout logout-url="/logout"
    logout-success-url="/login"
    invalidate-session="true" />

<form-login login-page="/login"
    login-processing-url="/j_security_check"

    always-use-default-target="false"
    authentication-failure-url="/login?failure=true"
    username-parameter="username"
    password-parameter="password"/>
Run Code Online (Sandbox Code Playgroud)

我尝试使用authentication-success-handler-ref属性来引用一个SavedRequestAwareAuthenticationSuccessHandler实例,但是,它也没有用.

有什么投入?

java spring-3

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

RabbitMQ 在重启期间崩溃

当我尝试启动rabbitmq服务器时,我在log/*-sasl.log中收到以下错误

=CRASH REPORT==== 10-Apr-2013::23:24:32 ===
crasher:
initial call: application_master:init/4
pid: <0.69.0>
registered_name: []
exception exit: {bad_return,
                    {{rabbit,start,[normal,[]]},
                     {'EXIT',
                         {undef,
                             [{os_mon_mib,module_info,[attributes],[]},
                              {rabbit_misc,module_attributes,1,
                                  [{file,"src/rabbit_misc.erl"},
                                   {line,760}]},
                              {rabbit_misc,
                                  '-all_module_attributes/1-fun-0-',3,
                                  [{file,"src/rabbit_misc.erl"},
                                   {line,779}]},
                              {lists,foldl,3,
                                  [{file,"lists.erl"},{line,1197}]},
                              {rabbit,boot_steps,0,
                                  [{file,"src/rabbit.erl"},{line,441}]},
                              {rabbit,start,2,
                                  [{file,"src/rabbit.erl"},{line,356}]},
                              {application_master,start_it_old,4,
                                  [{file,"application_master.erl"},
                                   {line,274}]}]}}}}
  in function  application_master:init/4 (application_master.erl, line 138)
ancestors: [<0.68.0>]
messages: [{'EXIT',<0.70.0>,normal}]
links: [<0.68.0>,<0.7.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 2584
stack_size: 24
reductions: 227
neighbours:
Run Code Online (Sandbox Code Playgroud)

启动日志有 -

{error_logger,{{2013,4,11},{2,48,36}},std_error,"File operation error: eacces. Target: /usr/lib64/erlang/lib/otp_mibs-1.0.7/ebin. Function: read_file_info. Process: code_server."}

=ERROR REPORT==== 11-Apr-2013::02:48:36 ===
File operation error: …
Run Code Online (Sandbox Code Playgroud)

rabbitmq

5
推荐指数
0
解决办法
1035
查看次数

Spring JUnit:java.lang.NoSuchFieldError:NULL

我对maven很新.当我执行时,mvn clean install我在执行期间在所有测试类中得到以下错误.在浏览了SO上的一些帖子并通过Google搜索之后,所有提到的JUnit版本都出现了问题.我交叉检查了所有的pom文件,他们有junit版本4.8.2.但是,我仍然继续犯这个错误.

<testcase time="0.002" classname="com.service.ServiceImpl" name="initializationError0">
<error message="NULL" type="java.lang.NoSuchFieldError">java.lang.NoSuchFieldError: NULL
    at org.junit.runners.ParentRunner.&lt;init&gt;(ParentRunner.java:48)
    at org.junit.runners.BlockJUnit4ClassRunner.&lt;init&gt;(BlockJUnit4ClassRunner.java:58)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.&lt;init&gt;(SpringJUnit4ClassRunner.java:104)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.junit.internal.requests.ClassRequest.buildRunner(ClassRequest.java:33)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:28)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:103)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
</error>
</testcase>
Run Code Online (Sandbox Code Playgroud)

我跑了mvn dependency:tree并搜索了所有junit实例.所有这些都显示4.8.2.

spring junit4

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

Awk:将输出格式化为json

我正在尝试创建一个脚本,它将以json格式返回机器的磁盘使用情况.这是命令 -

df -k $1 | grep -v Filesystem | gawk 'BEGIN { ORS = ""; print " [ "} {printf " { \"name\" : \""$1"\", \"usage\" : \""$5"\", \"mount_point\" : \""$6"\" }" } END { print " ] " }'`
Run Code Online (Sandbox Code Playgroud)

获得的输出是 -

 [  { "name" : "/dev/sda4", "usage" : "36%", "mount_point" : "/" } { "name" : "udev", "usage" : "1%", "mount_point" : "/dev" } { "name" : "tmpfs", "usage" : "0%", "mount_point" : "/dev/shm" } { "name" : …
Run Code Online (Sandbox Code Playgroud)

bash awk

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

shell:迭代数组

我的脚本接受键值对作为命令行参数.我测试给定数量的参数是否均匀.如果是偶数,我想迭代数组,考虑args[n]&args[n+1]作为一对(n = 0 to $# - 1)并执行另一个命令,将这两个作为参数.我无法获得for循环.这是我的代码 -

#!/bin/sh

usage() {
    echo "$0 <property-name> <property-value> [<property-name> <property-value> ...]"
    exit 1
}

if [ $# -lt 2 ] ; then
    usage
fi

# Should be even number of arguments
if [ $(( $# % 2 )) -ne 0 ]
    echo "Even number of arguments expected."
    usage
fi
args=("$@")
COMMAND="/mycommand "
for ### WHAT SHOULD I WRITE HERE??
    PROPERTY=${args[$c]}
    VALUE=${args[$c + 1]}
    COMMAND="mycommand $PROPERTY $VALUE"
    ## …
Run Code Online (Sandbox Code Playgroud)

bash

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

Oracle:创建唯一索引但忽略NULL

我在SO上遇到了这个例子,它给出了一个通过忽略空值来创建唯一索引的解决方案.但是,我想扩展它,我无法达成解决方案.

我有一个表的3列的复合索引(表中还有其他10列).这些列不是PK的一部分.在这3列中,2将始终保留一些值,第3列可能为NULL.我有大量的测试数据,并且有许多插入,其中2列具有相同的值,第3列为NULL.这些所有插件都适用于PostgreSQL,但Oracle抱怨道.为了让我的测试用例工作,我认为我认为最简单的解决方案是尝试一个独特的Oracle索引,它可以在PostgreSQL中运行.

确切地说:我想要一种以下类型的结构,不确定如何结合 col1 + col2 + col3

create unique index tbl_idx on tbl (nvl2(col3, col1 + col2, col1 + col2 + col3))
Run Code Online (Sandbox Code Playgroud)

我正在使用liquibase.索引以下列方式创建 -

<changeSet dbms="postgresql,oracle" author="abc" id="222">
    <createIndex indexName="Index_7" schemaName="ss" tableName="Users" unique="true">
        <column name="idOrganization"/>
        <column name="strUsername"/>
        <column name="strNotDeleted"/>
    </createIndex>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

我使用liquibase来创建我的测试数据,这里有两个插入语句

<insert schemaName="ss" tableName="Users">
    <column name="strUsername" value="user1" />
    <column name="idUser" valueNumeric="20741" />
    <column name="idOrganization" valueNumeric="4" />
    <column name="strFirstName" value="user" />
    <column name="strLastName" value="one" />
    <column name="strEmail" value="email@foo.com" />
    <column name="strNotDeleted" />
</insert>
<insert schemaName="ss" tableName="Users">
    <column …
Run Code Online (Sandbox Code Playgroud)

oracle11g

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