【发布时间】:2016-08-30 00:22:48
【问题描述】:
在尝试为功能处理样板代码而非业务逻辑的类编写测试用例时。我开始怀疑单元测试是否真的值得这门课。但是话又说回来,在使用 TDD 时,建议我们为添加的任何逻辑编写测试。
以下面的类为例,只是使用 DI 注入依赖项并获取配置参数来设置应用程序的运行。除了单元测试是否正确注入了依赖项,或者是否在运行完成时调用了destroy(这将是对java CDI框架的单元测试而不是我自己的代码),我还能单元测试什么?
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.inject.Inject;
@Singleton
@Startup
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class PipsAlprConnectionRunner {
@Inject
private PipsAlprConfiguration config;
@Inject
private PipsAlprConnector connector;
@Inject
private Scheduler scheduler;
@Inject
@PipsAlprAdapterService
private ServiceStatus status;
private Timer connectorTimer = null;
@PostConstruct
public void initialized() {
status.started();
connectorTimer = scheduler.schedule(connector, 0,
1000 * config.getPollPeriodSeconds());
status.operational();
}
@PreDestroy
public void destroy() {
connectorTimer.cancel();
connector.shutdown();
status.stopped();
}
}
在上面的类中,我想不出任何使用 TDD 的测试场景,所以只是想出了代码,现在我想知道我到底可以在这里进行什么单元测试。
【问题讨论】:
标签: unit-testing jakarta-ee junit dependency-injection tdd