首页 > 其他分享 >单元测试2

单元测试2

时间:2022-11-20 13:22:58浏览次数:54  
标签:name mockito 单元测试 echo phone Assertions import

package com.echo.mockito.service.Impl;

import com.echo.mockito.dao.SalesDao;
import com.echo.mockito.dao.UserDao;
import com.echo.mockito.entity.User;
import com.echo.mockito.exception.DAOException;
import com.echo.mockito.exception.ValidationException;
import com.echo.mockito.util.FindUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.*;

import java.sql.SQLException;

import static org.junit.jupiter.api.Assertions.*;

class RegistrationServiceImplTest {

@InjectMocks
@Spy
private RegistrationServiceImpl registrationService;
@Mock
private UserDao userDao;
@Mock
private SalesDao salesDao;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}

@Test
void register() throws Exception {
String name = null;
String phone = "15071271412";
try {
registrationService.register(name, phone);
Assertions.fail("这里会挂掉");
} catch (Exception e) {
Assertions.assertTrue(e instanceof ValidationException);
}

name = "一直游到海水变蓝";
phone = null;
try {
registrationService.register(name, phone);
Assertions.fail("这里会挂掉");
} catch (Exception e) {
Assertions.assertTrue(e instanceof ValidationException);
}

phone = "15071271412";
MockedStatic<FindUtils> staticService = Mockito.mockStatic(FindUtils.class);
staticService.when(() -> FindUtils.getAreaCode("15071271412")).thenReturn("a");
staticService.when(() -> FindUtils.getOperatorCode("15071271412")).thenReturn("b");
// 1.数据库操作正常
Mockito.when(salesDao.findRep("a","b")).thenCallRealMethod();
Mockito.when(userDao.save(name, phone, "Echo")).thenCallRealMethod();
User user = registrationService.register(name, phone);
Assertions.assertEquals("Echo", user.getRepId());

// 2.数据库操作异常
Mockito.when(userDao.save(name, phone, "Echo")).thenThrow(new SQLException());
try {
registrationService.register(name, phone);
} catch (Exception e) {
Assertions.assertTrue(e instanceof DAOException);
}
}
}

标签:name,mockito,单元测试,echo,phone,Assertions,import
From: https://www.cnblogs.com/wscp/p/16908282.html

相关文章

  • 使用Mockito与Squaretest进行单元测试.
    项目开发过程中,不少公司都要求写单元测试的代码,可以提高代码的质量,并且可以减少出现BUG的概率。对于中小型公司来说,对单元测试不做硬性要求,不写最好。因为还是需要一......
  • 单元测试 request_mock模拟网络调用
    importunittestfromunittestimportmockfromrequests.exceptionsimportConnectionErrorimportrequests_mockimportrequestsclassMyBugzilla:def__......
  • Springboot单元测试Junit的坑及解决方案
    最近做springboot项目,写单元测试导入junit的时候,org.junit.jupiter.api.Test和org.junit.Test傻傻分不清,因为习惯了用junit4,所以导入的都是org.junit.Test,普通的测试是没......
  • R语言单元测试-testthat
    #testthat通常配合R包开发时测试使用。devtools::use_testthat()#初始化,创建tests/testthat.R,tests/testthat/usethis::use_r('functions')#创建R脚本,在当前......
  • 【博学谷学习记录】超强总结,用心分享|UnitTest单元测试框架详解
    1.介绍UnitTest框架是Python自带的一个单元测试框架,它不仅可以用来进行单元测试,还可用于Web、Appium、接口自动化测试用例的开发与执行。该测试框架可组织执行测试用......
  • python 单元测试
    importunittestclassMyTestCase(unittest.TestCase):deftest_something(self):self.assertEqual(0,False)if__name__=='__main__':unitte......
  • 单元测试用例复用到集成测试?Testlet Library来助力!
    前言  作为一名测试工程师,在做MiL测试时,编写测试用例的效率影响整个测试项目的进度,如何有效提升编写测试用例的效率,是大家都关心的问题。 TPT作为一款自动化测试......
  • 如何用 JavaScript 编写你的第一个单元测试
    测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输......
  • 【单元测试】Junit 4(一)--白盒测试方法
    1.0流程图标识1.1语句覆盖法(C0标准)①目标​ 程序中的每个可执行语句至少被执行一次后面如未说明那就是还是用的这个样例程序源代码:importjava.util.Scanner;p......
  • Spring-day01 spring全家桶,如何学习框架,单元测试
    Spring学习-概述1.spring全家桶:spring,springmvc,springboot,springcloudspring:出现是在2002左右,解决企业开发的难度。减轻对项目模块之间的管理,类和类之间的......