【发布时间】:2017-02-07 15:11:55
【问题描述】:
我不确切知道如何为以下这些类编写测试,尤其是对于控制器和模型。是否可以使用 jUnit 进行测试? 我从 Selenium 那里听说过,但首先我会用 jUnit 进行测试。感谢您的帮助和问候。
Controller.class:
import factory.InfoMessageFactory;
import entity.Product;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import model.ProductModel;
import project.Konstanten;
@Named(value = "ProductController")
@SessionScoped
public class ProductController implements Serializable {
private Product product;
@Inject
private ProductModel model;
@PostConstruct
public void init() {
this.product = new Product();
}
public String addProduct() {
this.model.newProduct(this.product);
}
public Product getProduct() {
return product;
}
public void setProdukt(Product product) {
this.product = product;
}
public List<Product> getProducts() {
return this.model.getProducts();
}
}
模型类
package model;
import ejb.DB;
import entity.Product;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
@Dependent
public class ProductModel implements Serializable{
@Inject
private DB db;
public boolean addProduct(Product p){
try{
db.persist(p);
}catch(Exception e){
System.out.println("Blablabla");
return false;
}
return true;
}
}
还有 DB.class
@Stateless
public class DB {
@Inject
@RealClass
private EntityManager em;
public void persist(Object object) {
em.persist(object);
}
【问题讨论】:
-
您想要进行单元测试或集成测试?
-
只是单元测试
-
使用 arquillian 和 jsfunit。由于您使用真正的容器并且不需要模拟您不想/不需要模拟的所有内容,因此更容易
标签: jsf junit model controller ejb