小编Bor*_*vić的帖子

有没有办法在Mockito的验证方法中使用类似jUnit Assert的消息参数?

让我们假设一段测试代码:

Observable model = Class.forName(fullyQualifiedMethodName).newInstance();
Observer view = Mockito.mock(Observer.class);
model.addObserver(view);
for (Method method : Class.forName(fullyQualifiedMethodName).getDeclaredMethods())
{
  method.invoke(model, composeParams(method));
  model.notifyObservers();
  Mockito.verify(
    view, Mockito.atLeastOnce()
  ).update(Mockito.<Observable>any(), Mockito.<Object>any());
}
Run Code Online (Sandbox Code Playgroud)

Mockito.verify如果模型中的Observable.setChanged()方法没有调用方法,则抛出异常.

问题:没有添加loggers/System.print.out我无法意识到当前测试失败的方法是什么.有没有办法与jUnit Assert方法类似:

Assert.assertEquals(
  String.format("instances %s, %s should be equal", inst1, inst2),
  inst1.getParam(), 
  inst2.getParam()
);
Run Code Online (Sandbox Code Playgroud)

解:

verify(observer, new VerificationMode()
{
  @Override
  public void verify(VerificationData data)
  {
    assertTrue(
        format(
            "method %s doesn't call Observable#setChanged() after changing the state of the model",
            method.toString()
        ),
        data.getAllInvocations().size() > 0);
  }
}).update(Mockito.<Observable>any(), Mockito.<Object>any());
Run Code Online (Sandbox Code Playgroud)

java junit assert verify mockito

21
推荐指数
3
解决办法
9135
查看次数

了解和修改大型项目

我是一名新手程序员,作为我项目的一部分,我必须修改一个包含数百个类的开源工具(用java编写).我必须修改它的重要部分以满足项目的需要.在过去的一个月里,我一直在努力尝试阅读代码,试图找出每个类的功能,并试图从头到尾找出管道.

80%的课程都有不完整/缺失的文件.剩下的20%是构成该工具的通用API的那些.一个月的代码阅读刚刚帮助我理解了基本架构.但我无法弄清楚我需要为我的项目做出的确切更改.有一次,我开始修改部分代码,很快就做了很多改变,我再也记不住了.

一位朋友建议我尝试写下类层次结构.是否有更好的(标准?)方式来做到这一点?

java legacy

17
推荐指数
3
解决办法
3454
查看次数

如何将https-listener添加到WildFly的默认服务器?

我正在关注以下教程:https://github.com/jbosstm/quickstart/tree/master/XTS/ssl

使用jboss-cli成功添加了安全领域:

/core-service=management/security-realm=SSLRealm:add()
/core-service=management/security-realm=SSLRealm/server-identity=ssl:add( \
   keystore-path=./standalone/configuration/server.keystore, \
   keystore-password=client, \
   alias=client)
Run Code Online (Sandbox Code Playgroud)

当我尝试添加一个https-listener:

/subsystem=undertow/server=default-server/https-listener=https:add( \
    socket-binding="https", security-realm="SSLRealm" \
)
Run Code Online (Sandbox Code Playgroud)

WildFly抛出一个异常:

{
  "outcome" => "failed",
  "failure-description" => "JBAS014750: Operation handler failed to complete",
  "rolled-back" => true
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何添加https-listener

jboss command-line-interface wildfly jboss-cli

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

为什么java.lang.Thread.join()方法的名称是这样的?

有谁知道为什么java.lang.Thread的方法join()成员被命名为?它的javadoc是:

等待这个线程死亡.

当在一些线程上调用join时,调用线程正在等待另一个线程死并继续执行.据说调用线程也会死掉,但仍然不清楚为什么作者使用这个名字.

concurrency multithreading naming

13
推荐指数
3
解决办法
1781
查看次数

如何告诉Maven2在新的JVM实例中逐个执行jUnit测试?

是否有可能告诉Maven2以串行模式在新的JVM实例(fork)中执行每个jUnit测试,即逐个执行.

junit maven-2 jvm

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

将已删除目录提交到SVN存储库时出现问题

我正在使用Eclipse Europa和Subversive SVN插件.

当尝试提交已删除的目录时,SVN会返回以下消息:

Some of selected resources were not committed.
Item is out of date
svn: Commit failed (details follow):
svn: Item '/myProject/trunk/src/test/config' is out of date
Run Code Online (Sandbox Code Playgroud)

该文件夹的内容已被删除并提交.

我该怎么办呢?

eclipse svn subversive

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

如何在IntelliJ IDEA中创建补丁?

在Eclipse生活多年后,我一直在使用IntelliJ IDEA 9.0社区版.似乎很难找到一件事.我想在我的项目中的某个子文件夹上创建一个补丁.在Eclipse中,使用右键单击Team,Create Patch完成.

有没有人知道如何在IDEA中做到这一点?

java eclipse svn patch intellij-idea

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

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

为什么InputStream和OutputStream实现Closeable而Socket不实现?

在方法中看到过这个评论:

//I wonder why Sun made input and output streams implement Closeable and left Socket behind
Run Code Online (Sandbox Code Playgroud)

它会阻止创建包装器匿名内部类,它实现了Closeable,它将close方法委托给Socket实例.

java interface

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

SVN在提交期间合并冲突

Eclipse + Subversive插件

在提交与SVN不同步的目录时,会弹出一条消息:

Merge conflict during commit
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating
Run Code Online (Sandbox Code Playgroud)

试图从Eclipse Navigator视图更新整个项目(右键单击>刷新或F5),问题仍然存在.

在这种情况下有什么可以做的吗?

eclipse svn conflict subversive svn-merge

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