小编Per*_*los的帖子

如何验证方法是否通过mockito从具有相同类的其他方法调用

我想测试一些在同一个类中调用其他人的方法.它基本上是相同的方法,但参数较少,因为数据库中有一些默认值.我在这上面展示

public class A{
    Integer quantity;
    Integer price;        

    A(Integer q, Integer v){
        this quantity = q;
        this.price = p;
    }

    public Float getPriceForOne(){
        return price/quantity;
    }

    public Float getPrice(int quantity){
        return getPriceForOne()*quantity;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我想测试是否在调用方法getPrice(int)时调用了方法getPriceForOne().基本上调用普通方法getPrice(int)和mock getPriceForOne.

import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
....

public class MyTests {
    A mockedA = createMockA();

    @Test
    public void getPriceTest(){
        A a = new A(3,15);
        ... test logic of method without mock ...

        mockedA.getPrice(2);
        verify(mockedA, times(1)).getPriceForOne();
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑一下,我有一个更复杂的文件,这个文件是其他人的实用工具,必须全部在一个文件中.

java mockito

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

如何格式化没有分组分隔符的数字

我正在尝试使用DecimalFormat.format()方法格式化BigDecimal值.

我的问题是,我不知道如何设置DecimalFormats DecimalFormatSymbol来格式化文本而不使用任何分组分隔符.

我想知道如何设置分组符号并使用格式方法.我知道如何通过使用替换或其他方法来做到这一点,但它不是我想要的.

所以我需要知道如何将空字符设置为分组运算符.

例:

DecimalFormat dec = new DecimalFormat();
DecimalFormatSymbols decFS = new DecimalFormatSymbols();
decFS.setGroupingSeparator( '\0' );
dec.setDecimalFormatSymbols( decFS );
BigDecimal number = new BigDecimal(1000);
String result = dec.format(number);
Run Code Online (Sandbox Code Playgroud)

我希望得到"1000"作为字符串,没有其他字符.请帮忙

注意(对帖子做出反应):我想仅仅编号,而不需要分组.

java

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

将基本类型对象列表作为子报表的数据源传递

我需要借助master report的参数将一个dataSource传递给我的子报表List<String>.我不知道dataSource是什么类型是正确的以及如何在子报表中获取值.

我的主报告中的片段:

<parameter name="seznamPriloh" class="java.util.List" isForPrompting="false"/>
....
<subreport>
    <reportElement x="0" y="56" width="555" height="76"/>
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{seznamPriloh})]]></dataSourceExpression>
            <subreportExpression><![CDATA[cz.alis.keong.jasjdr.reporting.ReportCompiler.compile("R79_SeznamPriloh")]]></subreportExpression>
</subreport>
Run Code Online (Sandbox Code Playgroud)

我的子报告中的代码段:

<detail>
    <band height="23">
        <textField>
            <reportElement x="56" y="3" width="100" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{}]]></textFieldExpression>
        </textField>
    </band>
</detail>
Run Code Online (Sandbox Code Playgroud)

请告诉我如何通过主报告的java.util.List<String>类型参数将数据源传递到子报告.

编辑次数:08.14 14:20将标签添加到Java

编辑:08.14 15:30涉及如何打印iReport中另一个列表中包含的字符串列表?适用于4.5.0和List<String>

java jasper-reports

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

在tomcat配置中设置catalina opts

您好我在tab java和field java选项的配置窗口中为tomcat设置参数.我想添加配置到catalina_opts有没有办法怎么做?

在那个领域,我有

-Dcatalina.home=d:\apache-tomcat-7.0.23
-Dcatalina.base=d:\apache-tomcat-7.0.23
-Djava.endorsed=d:\apache-tomcat-7.0.23\endorsed
-Djava.io.tmpdir=d:\apache-tomcat-7.0.23\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=d:\apache-tomcat-7.0.23\conf\logging.properties
-XX:MaxPermSize=256m
Run Code Online (Sandbox Code Playgroud)

编辑次数:22.06.2012 12:26

我想添加这个参数

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8777 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Djava.rmi.server.hostname=192.168.1.1
Run Code Online (Sandbox Code Playgroud)

编辑:22.06.2012 12:51

我将这些参数直接放入"Java选项"字段中,它可以工作,不确定为什么它第一次不起作用.

tomcat

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

检查列中是否存在值

我想知道在查询varchar特定表中列中是否存在值时如何最大化速度.我不需要知道它在哪里,或者有多少次出现,我只想要一个true/ false.当然,该列有一个索引.

现在,我有这个:

SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1);
Run Code Online (Sandbox Code Playgroud)

postgresql

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

从 BigDecimal 中删除小数结尾零

我编写测试并希望将BigDecimal结果与预期值进行比较。我想要使​​用方法Assert.assertEquals(BigDecimal, BigDecimal),因为如果删除它会显示精确的比较值,并且在 Eclipse 中我可以显示比较窗口。

所以在代码中我有一个方法返回BigDecimal四舍五入到小数点后两位。在测试用例中,我现在返回不带非零十进制数字的数字。所以我想创建比例为 0 的BigDecimal并将返回的BigDecimal修剪为相同的比例。

为了更复杂,我现在有方法从任何具有正确值的对象getDecimal(Object [,Optionaly int scale])创建BigDecimaltoString(),默认比例为 99。我在主要的“重”代码中使用它,所以这个方法必须非常快(不需要创建另一个对象,不要使用正则表达式等。 )。

所以简单的问题是:如何修改BigDecimal实例以通过最小负载修剪结尾的小数零。

想要这样的片子

0.010 -> 0.01
5.000 -> 5
100 -> 100   not 1E+2
Run Code Online (Sandbox Code Playgroud)

回复:

someTrim(new BigDecimal("100.00")).equals(new BigDecimal(100))
Run Code Online (Sandbox Code Playgroud)

做数学之类的事情

100.00 / (2, 99, DOWN) * 50.00 -> 2500
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像

public static BigDecimal getDecimal( Object value ) {
    // null here probably work beter, but dont want number longer then 99 decimal …
Run Code Online (Sandbox Code Playgroud)

java junit

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

确定函数中实际查询的模式名称

我想用它来构建 unique_key。但我不想明确提供架构名称。有什么办法可以弄清楚吗?

CREATE OR REPLACE FUNCTION is_value_free(_header_id integer, _value varchar)
  RETURNS BOOLEAN AS
$$
BEGIN
   RETURN NOT EXISTS (
      SELECT header_id, value
      FROM myschema.mytable
      WHERE value LIKE _value AND header_id != _header_id
      LIMIT 1);
END;
$$ LANGUAGE plpgsql;

ALTER TABLE mytable
  ADD CONSTRAINT uniq_value CHECK (is_value_free(header_id,value))
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它必须有效:

set search_path = schema1;

CREATE FUNCTION AS ABOVE

set search_path = schema2;

INSERT INTO schema1.mytable(id, header_id, value)
VALUES (1,1,'a');  -- Should be ok

INSERT INTO schema1.mytable(id, header_id, value)
VALUES (1,2,'a');  -- Should violate …
Run Code Online (Sandbox Code Playgroud)

postgresql

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

Jasper报告最后排序null/empty值

我有报告组和子组,需要按字母顺序排序,但我想要排序null或空值作为最后.是否有选择或一些工作来制作它?谢谢帕维尔

jasper-reports

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

标签 统计

java ×4

jasper-reports ×2

postgresql ×2

junit ×1

mockito ×1

tomcat ×1