当前位置: 首页 > news >正文

wordpress snow 3dseo是什么职位简称

wordpress snow 3d,seo是什么职位简称,城市网站建设意义,wordpress 2013Junit与Spring Test简单使用 Junit5简介Junit5 注解Junit5与Spring结合 差异概览MockingMockBeanSpyBeanDemo 注意事项 又要写测试代码了,总结记录一下。 Junit5简介 与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成: JUnit Pl…

Junit与Spring Test简单使用

  • Junit5简介
    • Junit5 注解
    • Junit5与Spring结合
  • 差异概览
  • Mocking
    • @MockBean
    • @SpyBean
    • Demo
  • 注意事项

又要写测试代码了,总结记录一下。

Junit5简介

与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成:

  • JUnit Platform:测试运行的基础平台,支持不同的测试引擎(不仅仅是 JUnit,还可以扩展其他测试框架,如 TestNG)。
  • JUnit Jupiter:JUnit5 的新编程模型和扩展模型,包含新的注解和测试方法(如 @Test, @BeforeEach,@AfterEach 等)。
  • JUnit Vintage:提供对 JUnit4 及更早版本的向后兼容支持,因此 JUnit5 可以运行旧的 JUnit4 测试代码。

Junit5 注解

  1. @BeforeEach 和 @AfterEach:取代了 JUnit4 的 @Before 和 @After,作用于每个测试方法。
  2. @BeforeAll 和 @AfterAll:取代了 JUnit4 的 @BeforeClass 和 @AfterClass,可以作用于整个类生命周期,且在 JUnit5 中可以是非静态方法(通过注入 TestInstance)。
  3. @DisplayName:允许为测试方法和类指定自定义名称,方便生成更具可读性的测试报告。
  4. @Nested:支持嵌套的测试类,便于组织复杂的测试场景。
  5. @ParameterizedTest:增强了参数化测试的支持,允许为测试方法传递多个参数集。
  6. DynamicTest:动态创建测试用例,支持灵活的测试流程。

@BeforeAll``@AfterAll 类级别,只执行一次

@BeforeEach @AfterEach 方法级别,每个方法都会执行

All 和 each的区别,在执行类级别测试时才能看出来: all仅执行一次,each执行次数取决于有多少个Test方法
在这里插入图片描述

Junit5与Spring结合

  • 在与Spring集成时,不再使用@RunWith
  • @ExtendWith, 指定拓展为Spring, 测试中可以使用Spring注解进行依赖注入,@ContextConfiguration指定配置类
  • @Transactional, 测试中提供事务支持
  • Spring框架提供的 @MockBean @SpyBean注解, 提供Mocking支持,模拟Bean行为

在springboot项目中,@SpringBootTest注解内部就是使用了
@ExtendWith({SpringExtension.class})`提前帮我们配置好了

差异概览

功能/特性JUnit4JUnit5Spring Test
架构单一模块模块化架构(Platform, Jupiter, Vintage)基于 TestContext 框架,与 JUnit 集成
注解@Test
, @Before
, @After
@Test
, @BeforeEach
, @AfterEach
@ContextConfiguration
, @Transactional
扩展机制@RunWith
, TestRule
@ExtendWith
, TestInstance
@ExtendWith(SpringExtension.class)
参数化测试较弱的参数化测试支持强大的参数化测试支持与 Spring 环境集成,支持 Mock 和依赖注入
事务管理N/AN/A支持 @Transactional
,测试完成后自动回滚
Spring 集成@RunWith(SpringJUnit4ClassRunner.class)@ExtendWith(SpringExtension.class)内置的对 Spring 上下文的管理和 Bean 注入支持

Mocking

@MockBean

如果不指定规则,则mockBean执行完返回默认值,即对象为null,数字为0

如果指定了规则,就按照规则返回,下面例子按照规则返回ok

@SpyBean

有规则按照规则走,没有规则按照真实服务进行。比如:在多服务调用过程中,如果部分服务不可用,可以定义规则,如果服务可用,则调用真实的服务。

Demo

import org.junit.jupiter.api.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.test.mock.mockito.SpyBean;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.doReturn;@SpringBootTest
class DemoTestApplicationTests {@SpyBeanMyService myService;// 所有方法使用myService方法,可自定义覆盖@MockBeanMyService2 myService2; // 所有方法需要自定义返回,否则使用默认初始值或null// 调用Spy模拟服务,@Testvoid invokeSpy(){// 仅定义hello的mock规则doReturn("hello handsome").when(myService).hello("wyy");assertEquals("hello handsome", myService.hello("wyy"));// 未定义规则,直接调用say()逻辑assertEquals("hello", myService.say("hello"));}// 调用Mock模拟服务,@Testvoid invokeMock(){// 仅定义hello的mock规则doReturn("hello handsome").when(myService2).hello("wyy");assertEquals("hello handsome", myService2.hello("wyy"));// 未定义规则,返回初始值或nullassertEquals("hello", myService2.say("hello"));}// All 和 each的区别,执行单独的测试方法区分不了,// 在执行类级别测试时才能看出来: all仅执行一次,each执行次数取决于有多少个Test方法@BeforeAllstatic void beforeAll(){System.out.println("before all");}@BeforeEachvoid beforeEach(){System.out.println("before each");}@AfterEachvoid afterEach(){System.out.println("after each");}@AfterAllstatic void afterAll(){System.out.println("after all");}
}

注意事项

  1. 使用断言进行判断,严禁System.out进行人工判断
  2. 丰富测试场景的多样性,通过不同参数测试增加多样性,提升测试覆盖率
http://www.yidumall.com/news/61084.html

相关文章:

  • 中国的网站域名是什么重庆seo排名扣费
  • 免费网站建设模板网络营销特点
  • 网站隐私条款模板百度推广费用一天多少钱
  • 千兆共享独享网站优化培训方式
  • 青海建设厅操作证查询网站seoshanghai net
  • 罗湖医院网站建设重庆seo推广
  • 网站及建设中页面网站模板
  • 做党建网站职业技能培训学校
  • 上海专业的网站公seo搜索引擎优化人才
  • 做民宿要给网站多少合同钱黑龙江网络推广好做吗
  • 10大免费软件下载网站海外短视频跨境电商平台是真的吗
  • 厦门专业做网站 厦门做网站的公司 厦门做服饰网站百度搜索风云榜游戏
  • phpcms做网站好吗全球搜钻
  • 网站建设如何做搜索引擎营销的实现方法有
  • 广州网站设计制作报价免费云服务器
  • 微信手机官方网站首页青岛谷歌推广
  • 铁岭做网站公司哪家好网络营销都具有哪些功能
  • 有那个网站做外贸肇庆百度快照优化
  • 德州商城网站建设google商店
  • 公司网站策划方案搜索引擎营销的主要方法
  • 建设网站公司域名太原网站推广公司
  • 深圳外贸平台建站seo网址优化靠谱
  • 上海建设网站的公司怎么找网站
  • 做100个网站挂广告联盟网络流量分析工具
  • 微信怎么做收费视频网站站长之家whois查询
  • 做暖暖视频免费老司机网站口碑营销例子
  • 宿州市做网站的公司东莞网络优化哪家好
  • 无锡百度推广代理商北京seo百度推广
  • 游戏门户网站 织梦网站换友链平台
  • 凡科网可以免费做网站吗营销策划公司收费明细