小编Set*_* M.的帖子

EasyMock为预期方法返回Null

我遇到了EasyMock的问题,为预期的(定义的)方法调用返回null.

创建模拟对象

mock = EasyMock.createMock(DAO.class);
Run Code Online (Sandbox Code Playgroud)

模拟在单元测试中设置.

expect(mock.update(myObj).andReturn(myObjUpdated).once();
replayAll();
service.setDao(mock);
service.processData(myObj);
verifyAll();
Run Code Online (Sandbox Code Playgroud)

processData方法只是调用

MyObject objUpdated = dao.update(myObj);
Run Code Online (Sandbox Code Playgroud)

这是构建模拟的接口.

public interface DAO {
   public <ENTITY> ENTITY update(ENTITY entity);
}
Run Code Online (Sandbox Code Playgroud)

我对可能导致问题的原因感到很困惑.我已经确认'obj'与我在单元测试中定义的对象相同.我也没有遇到任何其他嘲笑的问题(我知道).

这个问题可能与传入的Object有关吗?

提前致谢.我真的不确定其他哪些信息对您有帮助.

编辑:这是测试类(事实证明我的误解开始了)

public class TestMyService extends EasyMockHelper {...}
Run Code Online (Sandbox Code Playgroud)

java junit dao easymock

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

JPA映射模型使用Composite-Keys返回null元素

我使用JPA构建了我的数据模型,并使用Hibernate的EntityManager 3来访问数据.我使用HSQLDB进行测试(junit).我正在将此配置用于其他类,并且没有任何问题.

但是,最新一批表使用复合键作为主键,并且在实现时无法从数据库中检索填充的行.我没有收到错误,查询只返回null对象.

例如,如果我查询(使用jsql)"FROM Order o"返回表中所有订单的列表,我的list.size()具有适当数量的元素(2),但元素为null.

我希望有一个比我更敏锐的人能够辨别出我做错了什么.提前致谢!

(简化)表定义为:

CREATE TABLE member (
    member_id INTEGER NOT NULL IDENTITY PRIMARY KEY);

CREATE TABLE orders (
    orders_id INTEGER NOT NULL,
    member_id INTEGER NOT NULL,
    PRIMARY KEY(orders_id, member_id));

ALTER TABLE orders 
    ADD CONSTRAINT fk_orders_member 
    FOREIGN KEY (member_id) REFERENCES member(member_id);
Run Code Online (Sandbox Code Playgroud)

实体POJO由以下定义:

@Entity
public class Member extends Person implements Model<Integer>{
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="MEMBER_ID", nullable=false)
    private Integer memberId;

    @OneToMany(fetch=FetchType.LAZY, mappedBy="member", cascade=CascadeType.ALL)
    private Set<Order> orderList;
}

@Entity
@Table(name="ORDERS")
@IdClass(OrderPK.class)
public class Order extends GeneralTableInformation implements Model<Integer>{

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY) …
Run Code Online (Sandbox Code Playgroud)

java orm spring hibernate jpa

5
推荐指数
2
解决办法
9200
查看次数

Mercurial,永远忘记文件

在mercurial中是否可以忽略整个目录中的更改.

例如,我想mercurial不告诉我已经发生了对"class"目录的更改,因为我不希望版本控制我的项目的*.class文件.

version-control mercurial

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

标签 统计

java ×2

dao ×1

easymock ×1

hibernate ×1

jpa ×1

junit ×1

mercurial ×1

orm ×1

spring ×1

version-control ×1