小编RNJ*_*RNJ的帖子

断言对象是特定类型

在JUnit中是否有可能断言一个对象是一个类的实例?由于各种原因,我在测试中有一个对象,我想检查其类型.它是Object1的类型还是Object2的类型?

目前我有:

assertTrue(myObject instanceof Object1);
assertTrue(myObject instanceof Object2);
Run Code Online (Sandbox Code Playgroud)

这有效,但我想知道是否有更有表现力的方式来做到这一点.

例如:

assertObjectIsClass(myObject, Object1);
Run Code Online (Sandbox Code Playgroud)

我能做到这一点:

assertEquals(myObject.class, Object1.getClass());
Run Code Online (Sandbox Code Playgroud)

是否有一个特定的断言方法,允许我以更优雅,流畅的方式测试对象的类型?

java junit unit-testing

176
推荐指数
6
解决办法
15万
查看次数

如何在bash中获取grep结果之前/之后的行?

嗨,我很擅长bash编程.我想要一种在给定文本中搜索的方法.为此,我使用grep功能:

grep -i "my_regex"
Run Code Online (Sandbox Code Playgroud)

这样可行.但鉴于data这样:

This is the test data
This is the error data as follows
. . . 
. . . .
. . . . . . 
. . . . . . . . .
Error data ends
Run Code Online (Sandbox Code Playgroud)

一旦我找到了单词error(使用grep -i error data),我希望找到跟随这个单词的10行error.所以我的输出应该是:

    . . . 
    . . . .
    . . . . . . 
    . . . . . . . . .
    Error data …
Run Code Online (Sandbox Code Playgroud)

bash shell ubuntu

130
推荐指数
4
解决办法
17万
查看次数

系统用户密码已过期

我刚尝试通过sql developer作为系统登录我的数据库,所以我可以创建一个新用户.它出现了密码已过期的错误.

我google了一下,但看不到如何重置系统用户密码.我想这是一个安全问题.

我的问题是,如果密码已过期,我该如何以系统身份登录?如何在不以系统用户身份登录的情况下取消密码.我似乎被困在一个循环中,我无法重置密码到期.

oracle oracle11g

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

在where子句中使用like命名查询

是否可以在命名查询的where子句中使用like?我正在努力做以下事情,但我得到例外

@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
        "lower(p.city) like :city and " +
        "lower(p.countryName) like :countryName");
Run Code Online (Sandbox Code Playgroud)

我尝试添加%,就像在普通SQL中那样,但是会编译异常.

任何指针非常感谢!

谢谢

java sql jpa named-query

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

JPA默认提取类型

从我的理解@OneToOne@ManyToOneJPA注释做一个eager提取.我希望这些在我的应用程序中延迟加载,或者至少提示它(这是hibernate默认的).我已经开始添加注释了fetch = FetchType.LAZY

例如

@ManyToOne(optional = false, fetch = FetchType.LAZY)
Run Code Online (Sandbox Code Playgroud)

代替

@ManyToOne(optional = false)
Run Code Online (Sandbox Code Playgroud)

这既乏味又容易出错.有没有办法在应用程序级别执行此操作?在persistence.xml中也许?

java hibernate jpa fetch

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

IntelliJ线程调试

IntelliJ IDEA是否提供线程调试?也就是说 - Netbeans允许您调试多个线程,并在这些断点处自动停止(自动).然而,我似乎在IntelliJ中获得的只是"线程转储",这似乎是一个手动分析,以及当我点击"线程转储"时拍摄的快照.

有什么我想念的吗?我已经谷歌了,没有找到足够的信息来协助.

java ide debugging intellij-idea

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

Mockito - 验证双倍值

我有一个名为method1的方法,它接受一个在myManager上调用的double我传入这个65.888*60.当我尝试验证这个时,我得到了浮点问题.验证失败.它预计3953.28但3953.280029296875

verify(myManager, times(1)).method1(65.888 * 60d);
Run Code Online (Sandbox Code Playgroud)

无论如何我可以使这个验证对浮点检查进行模糊检查.就像你在assertEquals中做的那样,你在最后输入一个delta.

谢谢

java unit-testing mockito

15
推荐指数
2
解决办法
7322
查看次数

Hibernate Envers - 获取已更改的字段

我有一个相当复杂的数据库结构,我正在尝试审核.目前我运行Envers并审核对每个对象所做的更改.这非常有效!

我现在想在UI上显示一些审计信息.对象/表格变得非常复杂,因此我一直在寻找一种方法来查看审计中哪些字段已更改.当前Envers存储标记有修订ID的每个对象的快照.我可以查看每个对象的修订版,然后手动查询以查看已更改的内容,但我想知道是否有一种方法可以Envers存储哪些字段已更改.这可能吗?我从2011年发现了这个链接,它建议手动检查每个对象字段.我关心的是速度.我有很多相关的对象,我可能只有一个更新的字段.我将不得不查询很多字段以找到已更改的字段.

是否可以存储已更改的字段?

谢谢

编辑

我应该说我正在使用REVCHANGES表,所以我可以看到在什么版本中发生了什么变化但是这只是在实体级别而不是字段级别

java audit hibernate hibernate-envers

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

OnItemClickListener无法正常工作,但OnItemLongClickListener正在使用GridView

我在gridview上遇到clickListener问题.LongClickListener可以正常工作.但我似乎无法从点击监听器获得任何响应.

我的代码如下.

我很困惑为什么长按工作但不是正常的点击,

任何指针将不胜感激

谢谢

final GridView gridView = (GridView) findViewById(R.id.grid_view);
gridView.setNumColumns(numOfColumns);
gridView.getLayoutParams().width = (CELL_WIDTH * numOfColumns);
gridView.getLayoutParams().height = (CELL_WIDTH * numOfRows);

....

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View v,
                                int position, long id) {
            Log.d("ABCD", "Position Single Click is " + position);
            // Ideally in here I want to put to open a soft keyboard for the user to enter a value
            // InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            // imm.showSoftInput(gridView, InputMethodManager.SHOW_IMPLICIT);
        }
    });

 gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
      @Override
      public …
Run Code Online (Sandbox Code Playgroud)

android gridview onitemclicklistener

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

hashcode()和equals()方法

所以我对hashcode()和equals()方法有疑问

假设我只是写了一个非常基本的程序来覆盖这两个方法

import java.util.*;

class Employee
{
   private String name;
   private int empid;


   public Employee(String name,int empid)
   {
       this.name=name;
       this.empid=empid;
   }


   public int getEmpid()
   {
       return empid;
   }


   public String getName()
   {
       return name;
   }


   public boolean equals(Object obj)
   {
       System.out.println("equals has just been called...");
       Employee e1=(Employee)obj;
       return ((name.equals(e1.name)) && (empid==e1.empid));
   }


   public int hashCode()
   {
       System.out.println("hashcode called...");
       return empid;
   }

}
Run Code Online (Sandbox Code Playgroud)

然后,假设我编写了另一个类来添加和迭代HashSet中的元素

class Five
{
   public static void main(String args[])
   {
       HashSet hs1=new HashSet();
       hs1.add(new Employee("Alex",25));
       hs1.add(new Employee("Peter",25));
       hs1.add(new …
Run Code Online (Sandbox Code Playgroud)

java equals hashcode hashset

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