小编Zac*_*ber的帖子

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

如何忽略Mockito中void方法中的几个void方法调用

我正在测试一个在类中调用其他几个void方法的void方法(所有这些方法都在同一个类中).这种方法是这样的......

public void methodToTest() {
   methodA();
   methodB();
}

void methodA() {
   methodA1();
   methodA2();
   methodA3();
}
Run Code Online (Sandbox Code Playgroud)

我想做的是让methodA()上面什么都不做.也就是说,我想methodA()基本上是这样的:

void methodA() { }
Run Code Online (Sandbox Code Playgroud)

我都试过doThrow(),并doAnswer()methodA()无济于事.好像那些都被完全忽略了.

我试过的一个例子......

doThrow(new RuntimeException()).when(mockedClass).methodA();
Run Code Online (Sandbox Code Playgroud)

有没有办法只使用Mockito?我不能自由改变被修改的课程.

junit mockito

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

resttemplate getForObject map responsetype

更新02/05/2018(大约4年后)...我再次对此进行了测试,因为人们一直在讨论我的问题/答案,Sotirios Delimanolis是正确的,我不应该在我的答案中编写代码来完成这项工作.我使用了基本相同的RestTemplate/REST服务设置,如我的问题所示,REST服务具有确认的响应内容类型application/json,RestTemplate能够处理响应而没有问题进入Map.


我正在调用一个JSON像这样返回的休息服务:

{
   "some.key" : "some value",
   "another.key" : "another value"
}
Run Code Online (Sandbox Code Playgroud)

我想我可以使用java.util.Map响应类型来调用此服务,但这对我不起作用.我得到这个例外:

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map]
Run Code Online (Sandbox Code Playgroud)

我应该只指定String为响应类型并将其转换JSONMap

编辑我

这是我的restTemplate调用:

private Map<String, String> getBuildInfo(String buildUrl) {
    return restTemplate.getForObject(buildUrl, Map.class);
}
Run Code Online (Sandbox Code Playgroud)

这是我如何设置restTemplate:

@PostConstruct
public void initialize() {
    List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
    interceptors.add(new ClientHttpRequestInterceptor() {
        @Override
        public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
            HttpRequestWrapper requestWrapper = …
Run Code Online (Sandbox Code Playgroud)

java spring json resttemplate

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

并发 - 在不取消它的情况下中断未来

有没有办法在不取消它的情况下打断未来?

java doc API:

boolean cancel(boolean mayInterruptIfRunning)

尝试取消执行此任务.如果任务已完成,已取消或由于某些其他原因无法取消,则此尝试将失败.如果成功,并且在调用cancel时此任务尚未启动,则此任务永远不会运行.如果任务已经启动,则mayInterruptIfRunning参数确定执行此任务的线程是否应该在尝试停止任务时被中断.

要捕获中断,我们必须正确捕获Interrupted Exception或检查Runnable/Callable方法中的isInterrupted()方法.

但是没有办法使用Future接口中断正在运行的Future

由于所有线程都在Executor Service池中,因此没有人可以执行thread.interrupt().这就是为什么假设只有当Future被取消或线程池终止时才会出现任何中断?

我试图理解为什么Future接口中没有中断方法.任何帮助将不胜感激

java concurrency future interrupt

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

使JQuery UI对话框自动增长HEIGHT以适应其内容(宽度保持静态)

看看Make JQuery UI Dialog自动增长或缩小以适应其内容,我height: "auto"在构建jQuery模式对话框时使用该选项:

$( "#dialog-message" ).dialog({
    autoOpen: false,
    width: "400",
    height: "auto",
    show: "slide",
    modal: true,
    buttons: {
        Ok: function() {
            $( this ).dialog( "close" );
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

然而,高度并没有"增长"以适应所有内容.我仍然看到一个垂直滚动条,如下图所示:

jQuery模态对话框图像

在我列出的定义代码中是否有一种方法可以确保高度增长到足以使垂直滚动条不显示?或者,在打开对话框之前,是否需要以编程方式执行此操作?

编辑1
不确定为什么,但Chrome显示此罚款,但IE 8不是.我需要它专门在IE 8中工作,所以我相信我只是在文本上留下一个底线.

jquery jquery-ui

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

Java Short补充问题

这可能已经在另一篇文章中得到了解答,但我只是不知道为什么某些东西无法在我的测试Java应用程序(1.7.0_01)中编译.

这编译:

Short a = (short)17;
a = (short)2 + 1;
Run Code Online (Sandbox Code Playgroud)

我知道"a + a"会产生一个整数.编译好:

Short a = (short)17;
int shortTest = a + a;
Run Code Online (Sandbox Code Playgroud)

那为什么不编译呢?

Short a = (short)17;
a = (short)a + a;
Run Code Online (Sandbox Code Playgroud)

另外,我是否正确地假设你不能在短裤上使用+ =, - =等...因为转换为整数?如果可以进行这些操作,有人可以提供一个例子吗?

编辑1
有一些投票要关闭这篇文章,因为它被认为是一个复制的原始类型'短' - 在Java中投射.但是,我的例子围绕着Wrapper"Short"对象.关于构建Wrapper对象有一些重要且更复杂的规则,这就是我认为需要关注的内容.

另外,正如我的原帖所示,我正在寻找第三个代码块背后的"为什么".我也有兴趣知道是否可以在Short Wrapper上使用"+ ="," - ="等等.

java

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

在Notepad ++中显示不匹配的html标签

有没有办法在Notepad ++中突出显示不匹配的HTML标签?

例如,如果我有以下HTML ...

<HTML>
<!--Server: <%=(java.net.InetAddress.getLocalHost()).getHostName()%>-->
<HEAD>
   <TITLE>Vital Stats</TITLE>
   <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
   <SCRIPT SRC="vital_stats.js" TYPE="text/javascript"></SCRIPT>
   <LINK REL="STYLESHEET" HREF="../main.css">
</HTML>
Run Code Online (Sandbox Code Playgroud)

我希望<HEAD>以某种方式突出显示标记,以表明它没有相应的</HEAD>标记.

我还希望看到突出显示的任何结束标记没有相应的开始标记.

编辑

我已经了解了Notepad ++点击标签以查看相应标签的功能.我想要突出显示ENTIRE文档中不匹配的任何标记.即使我可以运行某种实用程序/插件,我会列出任何不匹配的标签的行号和名称会有所帮助.

html notepad++

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

java.lang.NoSuchMethodError:org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset

当我试图TestNG通过我的测试来运行我的测试antjava.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset(参见下面的完整例外)

我编译或运行我的Web应用程序没有问题,但无法通过ant运行测试.我很确定这是一个类加载问题,但不确定应该在运行时加载什么类加载.我正在使用Spring 4.3.1和Spring Security 4.1.1.

是否有特定的顺序加载我的罐子,以便使用"正确"的版本org.springframework.http.MediaType

[testng] org.testng.TestNGException: 
   [testng] An error occurred while instantiating class com.avada.rest.api.GroupsIntTest: org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset;
   [testng]     at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:388)
   [testng]     at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:290)
   [testng]     at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:125)
   [testng]     at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:191)
   [testng]     at org.testng.TestClass.getInstances(TestClass.java:104)
   [testng]     at org.testng.TestClass.initTestClassesAndInstances(TestClass.java:90)
   [testng]     at org.testng.TestClass.init(TestClass.java:82)
   [testng]     at org.testng.TestClass.<init>(TestClass.java:45)
   [testng]     at org.testng.TestRunner.initMethods(TestRunner.java:409)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:247)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:217)
   [testng]     at org.testng.TestRunner.<init>(TestRunner.java:161)
   [testng]     at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:555)
   [testng]     at org.testng.SuiteRunner.init(SuiteRunner.java:168)
   [testng]     at org.testng.SuiteRunner.<init>(SuiteRunner.java:117)
   [testng]     at org.testng.TestNG.createSuiteRunner(TestNG.java:1359)
   [testng]     at org.testng.TestNG.createSuiteRunners(TestNG.java:1346)
   [testng]     at org.testng.TestNG.runSuitesLocally(TestNG.java:1200) …
Run Code Online (Sandbox Code Playgroud)

java ant spring nosuchmethoderror

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

从外部表中选择sqlplus错误:ORA-29913:执行ODCIEXTTABLEOPEN标注时出错

我已经设置了一个简单的Oracle外部表测试,我(与DBA和Unix管理员一起)无法工作.

以下内容基于Oracle的外部表概念.我们使用的数据库是11g.

这是外部表定义:

drop table emp_load;

CREATE TABLE emp_load
    (employee_number      CHAR(5),
     employee_dob         DATE,
     employee_last_name   CHAR(20),
     employee_first_name  CHAR(15),
     employee_middle_name CHAR(15),
     employee_hire_date   DATE)
  ORGANIZATION EXTERNAL
    (TYPE ORACLE_LOADER
     DEFAULT DIRECTORY defaultdir
     ACCESS PARAMETERS
       (RECORDS DELIMITED BY NEWLINE
        FIELDS (employee_number      CHAR(2),
                employee_dob         CHAR(20),
                employee_last_name   CHAR(18),
                employee_first_name  CHAR(11),
                employee_middle_name CHAR(11),
                employee_hire_date   CHAR(10) date_format DATE mask "mm/dd/yyyy"
               )
       )
     LOCATION ('external_table_test.dat')
);
Run Code Online (Sandbox Code Playgroud)

这是"external_table_test.dat"的内容:

56november, 15, 1980  baker             mary       alice      09/01/2004
87december, 20, 1970  roper             lisa       marie      01/01/1999
Run Code Online (Sandbox Code Playgroud)

我能够运行创建"emp_load"的脚本,没有任何问题.我也可以很好地描述表格.当我尝试"select*from emp_load"时,我收到以下错误:

SQL> select * from emp_load; …
Run Code Online (Sandbox Code Playgroud)

oracle oracle11g

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

iText飞碟页脚仅在最后一页显示

我有html&css用于构建我的iText飞碟页面设置如下...

<html>
    <head>
        <style type="text/css">
            body { padding: 5px; }

            .footer {
                position: running(footer);
                font-size: 11px;
                text-align: center;
            }

            @page {
                @bottom-center {
                    content: element(footer)
                }
            }

            .pagenumber:before {
                content: counter(page)
            }

            .pagecount:before {
                content: counter(pages)
            }
        </style>
    </head>
    <body>
        <div class="content">
            lots of content that spans multiple pages in here...
        </div>
        <div class="footer">
            Page <span class="pagenumber"></span> of <span class="pagecount"></span>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

为什么页脚只显示在最后一页?

html css itext flying-saucer

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