当前位置: 主页 > JAVA语言

java单元测试代码-广州市单元信息科技有限公司java

发布时间:2023-02-08 11:27   浏览次数:次   作者:佚名

本文主要介绍Java mockito单元测试实现过程的分析。 示例代码介绍的很详细。 对大家的学习或者工作都有一定的参考学习价值。 需要的朋友可以参考以下

待测服务接口:

public interface ItemService {
  String getItemNameUpperCase(String itemId);
}

预览

待测服务的实现类:

@Service
public class ItemServiceImpl implements ItemService {
  @Resource
  private ItemRepository itemRepository;
  @Override
  public String getItemNameUpperCase(String itemId) {
    Item item =编程客栈 itemRepository.findById(itemId);
    if (item == nullwww.cppcns.com) {
      return null;
    }
    return item.getName().toUpperCase();
  }
}
// 测试用例
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.*;
public class ItemServiceTest {
  @Mock
  private ItemRepository itemRepository;
  @InjectMocks
  private ItemServiceImpl itemService;
  @Before
  public void setUp(){
    MockitoAnnotations.initMocks(this);
  }
  /**
   * 编程客栈如果从存储层查询到一个Item, 那么它的 name 将被转化为大写.
   */
  @Test
  public void shouldReturnItemNameInUpperCase() {
    // Given
    Item mockedItem = new Item("it1", "Item 1", "This is item 1", 2000, true);
    when(itemRepository.findById("it1")).thenReturn(mockedItem);
    // When
    String result = itemService.getItemNameUpperCase("it1");
    // Then
    verify(itemRepository, times(1)).findById("it1");
    assertThat(result).isEqualTojOLMnow("ITEM 1");
  }
}

Mockito更高级的用法java单元测试代码,请参考官网和支持wiki的框架。 如果需要mock静态方法、私有函数等,可以学习PowerMockjava单元测试代码,拉取其源码,学习单元测试,快速掌握其用法。

以上就是本文的全部内容。 希望对您的学习有所帮助,也希望您多多支持。

本文标题:Java mockito单元测试实现过程分析