我正在创建几个单元测试来测试我的应用程序逻辑。在下面,我创建了两个基于order是否为真的final变量。有没有一种方法可以让它变干,而不必为每一种order类型都创建final变量?
private static final Order FIRST_ORDER = createOrder(
"watch",
"123",
true
);
private static final Order SECOND_ORDER = createOrder(
"watch",
"123",
false
);
private static Order createOrder(String productName, String productId, Boolean isNewOrder){
//Logic
}
@Test
public void shouldTestOrderCreation(){
OrderHelper helper = new OrderHelper();
helper.createOrder(FIRST_ORDER);
}
@Test
public void shouldTestOrderCreation(){
OrderHelper helper = new OrderHelper();
helper.createOrder(SECOND_ORDER);
}
2条答案
按热度按时间uqcuzwp81#
这有什么不对吗?
您也可以参数化测试:
但这完全取决于你想测试什么样的Assert。
zf9nrax12#
用函数调用代替常量更好;它们与单个单元测试方法具有相同的生命周期/时间。一个数据构造函数还不错。* 我认为这是一个人在常量上感受到的最具风格的刺激。*
这甚至适用于引用其他数据的复杂数据。我甚至可能会争辩说,将数据放在本地更容易阅读。
在这两种情况下,DRY可能意味着不复制可能不相关的具有相同值的属性,如产品名称。