我有一个执行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) 我正在使用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.
我试图通过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)
第一个查询有什么问题?
我正在将 PostgreSQL9.1 架构迁移到 Oracle11g。我无法在线找到 CITEXT 类型列的最大列长度是多少。使用 VARCHAR2 类型时,Oracle 应该设置什么大小。
注意:我知道 CITEXT 提供不区分大小写的比较,但是,我对此不太关心。
我有一个页面,其中包含指向应用程序中其他页面的多个链接.当用户访问网站时,显示系统页面,即使用户未登录也可以访问.但是,如果用户点击其他链接,则需要用户登录,用户被正确地重定向到登录页面.但是,登录后,用户不会被重定向到单击的链接,而是将用户带到系统页面(系统页面是默认目标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实例,但是,它也没有用.
有什么投入?
当我尝试启动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) 我对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.<init>(ParentRunner.java:48)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:58)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(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.
我正在尝试创建一个脚本,它将以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) 我的脚本接受键值对作为命令行参数.我测试给定数量的参数是否均匀.如果是偶数,我想迭代数组,考虑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) 我在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)