我似乎无法在网上找到任何解决此问题的教程
我有这个 if
语句:
if (basket.getCustomerId() != null) {
Basket exBasket = findBasketByCustomerId(basket.getCustomerId());
if (exBasket != null && exBasket.getBasketId() != null) {
return exBasket;
}
我想编写一个单元测试来测试每一行,看看它是否在做正确的事情。
有什么想法吗?
@Test
public void testBasketWithANullCustomerId(){
basketInformationServiceImpl.createBasket(mockBasket);
assertNotNull(mockBasket.getCustomerId());
}
最佳答案
单元测试的目的不是测试语句,而是方法。正确的做法是不要考虑这一行,而是考虑它出现的方法,问问你想让那个方法做什么:它需要什么样的输入,它应该产生什么样的输出?
然后编写接受一些典型输入的测试,并检查它们是否给出正确的输出,以及一些边缘情况输入(如null
, 0, Integer.MAX_VALUE
等)并检查您是否也获得了正确的输出。
如果这是你的整个方法(实际上它不可能是,但如果它是它的本质),我会测试:
购物篮
,带有null
客户 ID;- 一个
null
篮子(除非您确定这永远不会发生),因为目前这段代码将给出一个NullPointerException
; - 一个具有客户 ID 的购物篮,您可以使用该 ID 找到已知的
exBasket
; - 具有客户 ID 的购物篮将返回
null
的exBasket
; - 具有客户 ID 的购物篮将返回一个非空的
exBasket
,但其购物篮 ID 为null
。
关于java - 你如何用 junit 测试 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605211/