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

电子商务网站建设任务分解一个网站策划需要多少钱

电子商务网站建设任务分解,一个网站策划需要多少钱,建设银行网站账户注销,企业网站视频栏目建设方案文章目录 单测的定义方法的单测几种生成工具的对比生成步骤 接口的单测场景的单测总结参考 单测的定义 单元测试#xff08;Unit Testing#xff09;是一种软件开发中的测试方法#xff0c;它的主要目的是确保软件中的最小可测试单元#xff08;通常是函数、方法或类… 文章目录 单测的定义方法的单测几种生成工具的对比生成步骤 接口的单测场景的单测总结参考 单测的定义 单元测试Unit Testing是一种软件开发中的测试方法它的主要目的是确保软件中的最小可测试单元通常是函数、方法或类在被单独测试和验证时能够按照预期工作。尽管单元测试有很多优点如提高代码质量、减少Bug、简化调试过程等但它也存在一些缺点 增加开发时间如要求覆盖率到80%甚至90%或者入参几十个难以构造单测时间占比可能超过30%。需要维护随着代码的改变特别是大规模的重构单元测试也需要相应地更新和维护增加开发的负担。无法发现对其他类的影响单元测试主要关注单个单元的行为无法发现与多个单元交互或整个系统相关的问题。 所以部分公司会要求写接口维度、场景维度的单测覆盖率在50-60%甚至不强制要求覆盖率。 方法的单测 推荐用更智能的squaretest生成单测模板后手工调整。 几种生成工具的对比 diffblue 优点 与IntelliJ IDEA集成良好使用方便。支持多种编程语言和框架。 缺点 商用版本收费较高对于个人用户或小型团队可能不太友好。在处理某些特定写法或框架时可能不够灵活。 squaretest 优点 生成测试用例自动覆盖部分if分支减轻测试负担。 缺点 只有30天的免费试用期之后需要付费使用。事实上点掉remind后可以继续使用。没有社区版支持对于开源项目或个人用户可能不太友好。 EvoSuite 优点 作为Maven插件使用方便集成到Java项目中。支持生成多样化的测试用例有助于发现潜在的缺陷。 缺点 社区支持相对较少遇到问题时可能难以得到及时帮助。配置和使用可能相对复杂需要一定的学习成本。在处理某些特定场景或框架时可能不够灵活或有效。 TestMe 优点 简单易用适合初学者或小型项目使用。 缺点 需要手动填充输入参数和逻辑自动化程度较低。生成的测试用例可能不够全面或深入需要额外补充和完善。 生成步骤 安装插件 引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdversion2.1.1.RELEASE/version/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter/artifactIdversion5.8.2/version/dependency编写业务代码 Service public class TestServiceImpl implements TestService {Resourceprivate TestRepository testRepository;Resourceprivate TestThird testThird;Overridepublic void start(InputDTO inputDTO) {InputEntity entity testRepository.select(inputDTO.getId());if (entity null) {testRepository.insert(entity new InputEntity());}testThird.callThird(entity);} }生成单测 单测生成结果 /*** squaretest*/ class TestServiceImplTest {Mockprivate TestRepository mockTestRepository;Mockprivate TestThird mockTestThird;InjectMocksprivate TestServiceImpl testServiceImplUnderTest;BeforeEachvoid setUp() {initMocks(this);}Testvoid testStart() {// Setupfinal InputDTO inputDTO new InputDTO();inputDTO.setName(name);inputDTO.setId(0);final InputDetail inputDetail new InputDetail();inputDetail.setName(name);inputDTO.setInputDetail(inputDetail);// Configure TestRepository.select(...).final InputEntity inputEntity new InputEntity();inputEntity.setId(0);inputEntity.setName(name);when(mockTestRepository.select(0)).thenReturn(inputEntity);when(mockTestRepository.insert(any(InputEntity.class))).thenReturn(0);// Run the testtestServiceImplUnderTest.start(inputDTO);// Verify the resultsverify(mockTestRepository).insert(any(InputEntity.class));verify(mockTestThird).callThird(any(InputEntity.class));} } /*** testme*/ class TestServiceImplTestTestMe {MockTestRepository testRepository;MockTestThird testThird;InjectMocksTestServiceImpl testServiceImpl;BeforeEachvoid setUp() {MockitoAnnotations.initMocks(this);}Testvoid testStart() {when(testRepository.select(anyInt())).thenReturn(new InputEntity());when(testRepository.insert(any())).thenReturn(Integer.valueOf(0));testServiceImpl.start(new InputDTO());} }接口的单测 mock外部依赖启动容器调用接口 编写外部依赖的mock类 Service public class TestThirdImpl implements TestThird {Overridepublic void callThird(InputEntity entity) {System.out.println(TestThirdImpl callThird);} } //mock public class TestThirdMockImpl implements TestThird {public void callThird(InputEntity entity) {System.out.println(TestThirdMockImpl callThird);} } 替换容器中的beanmock外部依赖 Configuration public class MockConfig {Beanpublic BeanDefinitionRegistryPostProcessor beanDefinitionRegistryPostProcessor() {return new BeanDefinitionRegistryPostProcessor() {Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {//移除依赖的beanregistry.removeBeanDefinition(testThirdImpl);//获取Mockbean的定义BeanDefinition beanDe BeanDefinitionBuilder.rootBeanDefinition(TestThirdMockImpl.class).getBeanDefinition();//注册mockbeanregistry.registerBeanDefinition(testThirdImpl, beanDe);}Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {}};} }test模块中启动容器并调用入口方法 RunWith(SpringJUnit4ClassRunner.class) SpringBootTest(classes TestApplication.class) public class TestApplicationTest {Resourceprivate TestService testService;Testpublic void start() {testService.start(new InputDTO());}}场景的单测 将接口单测组合 RunWith(SpringJUnit4ClassRunner.class) SpringBootTest(classes TestApplication.class) public class TestApplicationTest {Resourceprivate TestService testService;Testpublic void start() {testService.start(new InputDTO());testService.end(new InputDTO());}}总结 方法的单测覆盖入参少、业务分支多的场景。接口、场景的单测覆盖主干流程。 参考 告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐JUnit 5 User Guide关于testNG和JUnit的对比JUnit 5 单元测试教程单元测试自动生成工具EvoSuite的简单使用使用BeanDefinitionRegistryPostProcessor动态注入BeanDefinition
http://www.hkea.cn/news/14565315/

相关文章:

  • 时尚网站首页设计织梦cms网站更新
  • 监控做直播网站陕西seo经理
  • 重庆 建站 价格网站建设企业谁家好
  • 怎么利用网站做兼职手表网站错误怎么办
  • 网页模板建站系统在线制作logo图标软件
  • 网红营销网站psd做模板下载网站
  • 给网站设置关键词小程序源码网
  • 企业oa网站建设方案做网站的群
  • 深圳企业网站制作公司查询网站建设与维护 唐清安
  • 怎么开发网站程序品牌营销经典案例
  • 长沙网站开发方案途牛网站建设策划书
  • saas建站没有网站源代码么怎样推广一个产品
  • 北京网站seo报价在哪里找软件开发公司
  • 全球网站免费空间注册哪些公司适合做线上推广
  • 设计作品展示网站软件开发流程模型有哪些
  • 成都制作网站的公司简介沈阳好的男科医院是哪一家
  • 从化建网站手机兼职群
  • 龙岗做网站贵阳双龙区建设局网站
  • 学网站建设与维护做淘宝链接网站
  • 做网站如何放入图像平台软件怎么制作开发
  • 纯静态网站模板做网站建设公司企业
  • 网站空间和服务器的区别友情链接如何选择网站
  • 阳春做网站公司wordpress ip地址修改
  • 文献综述 php网站开发建设农业网站的论文
  • 网站空间搭建wordpress 找不到安装主题
  • 网站建设公司需要有什么东西wordpress 注册美化
  • 在合肥哪里学网站建设谷雨网页设计作业
  • 广州海珠做网站的公司华艺网站开发
  • 手机网站返回顶部代码游戏推广怎么找玩家
  • 如何选择做网站怎么做点图片链接网站