单元测试

springmvc,springboot单元测试配置

有些话、适合烂在心里 提交于 2019-12-05 06:16:35
1. springmvc单元测试配置 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> package com.test; import org.junit.Test; import org.junit.runner.RunWith; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @Slf4j @RunWith(SpringRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext_.xml"}) public class ImageTask { @Autowired

安卓Kotlin单元测试/ Collection, ArrayList依赖的解耦/ MockK

若如初见. 提交于 2019-12-05 03:25:21
本来这种依赖的解耦很复杂,以为不能实现。 原来,要了解for的运行机制,然后进行mock,就可以实现单元测试。 1. 这里是通过迭代遍历Collection。 需要的是.size和.iterator.hasNext()。 fun getBeaconsInfo(beacons:Collection<Beacon>):HashMap<Int,Double>{ var infos = HashMap<Int,Double>() if (beacons.size > 0) { for(beacon in beacons){ infos.put(beacon.id3.toInt(),beacon.distance) } } return infos } 使用了Kotlin测试工具Mockk @Test fun getBeaconsInfo1(){ val beacons = mockk<Collection<Beacon>>() every { beacons.size } returns 3 every { beacons.iterator().hasNext() } returns true andThen true andThen true andThen false every { beacons.iterator().next().id3.toInt() } returns 8

Python之单元测试unittest

时光毁灭记忆、已成空白 提交于 2019-12-05 03:16:35
Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,使用时需import导入。 首先了解几个概念: TestCase表示测试用例 TestSuite 表示用例集合 TestRunner 运行测试用例 TestLoader 查找测试用例 写一个单元测试的用例: import unittest def add(a,b): return a+b class AddTest(unittest.TestCase): # @classmethod # def setUpClass(cls): #所有用例执行之前都会执行它 # print('setUpClass') # # @classmethod # def tearDownClass(cls): ##所有用例执行之后都会执行它 # print('tearDownClass') # # def setUp(self): #每条用例执行之前都会执行setUp # print('setUp') # # def tearDown(self): #每条用例执行之后都会执行tearDown # print('tearDown') def test_normal(self): #在unittest里函数名需要以test开头,否则不会被认为是测试用例 result=add(1,1) self.assertEqual(2

人生苦短?试试Groovy进行单元测试

China☆狼群 提交于 2019-12-04 23:57:02
如果您今天正在编程,那么您很可能听说过单元测试或测试驱动的开发过程。我还没有遇到一个既没有听说过又没有听说过单元测试并不重要的程序员。在随意的讨论中,大多数程序员似乎认为单元测试非常重要。 但是,当我开始使用代码并问“单元测试在哪里?”时,我得到了一个完全不同的故事。我最近在网上问我的程序员朋友为什么不这样做,以及为什么其他程序员不这样做呢?不要编写单元测试。当我问程序员或IT经理同样的问题时,我经常听到的第一答案是:“我没有时间”或类似的问题。通常会出现这样的论点,即使用单元测试编写应用程序要比不使用单元测试编写时间长20%,并且“我们受到时间限制”。 我的建议–当我们尝试解决时间不足的问题时,也许我们可以在娱乐性上做出一些贡献。 在实践中 我正在为一个应用程序设计原型,该应用程序将允许用户输入有关房屋装修项目的信息,然后与朋友共享该项目的材料和工具信息。然后,朋友可以承诺贷款或购买项目中所需的一些材料或工具。基本上是用于家庭装修项目的“登记处”。 测试将在采用Project对象的方法上进行,遍历该项目的工具列表以查看该工具是否已经被承诺,并创建一个未被承诺的工具列表。然后,它将把该列表传递给将查询每个工具当前价格的服务。 原型是用Grails完成的,但是我们将用Java编写此方法: public List<Tool> neededToolList(Project project

软件测试阶段

纵饮孤独 提交于 2019-12-04 23:43:23
1.软件测试阶段   ①单元测试:对软件中的最小可测试单元进行检查和验证。   ②集成测试:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动   ③系统测试:将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行   ④验收测试:也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统  2.单元测试的原则   ①尽可能的保证各个测试用例是互相独立的   ②一般由代码开发人员来是实施,用以检验所开发的代码功能符合自己的设计要求 3.单元测试的好处   ①能尽早发现缺陷   ②有利于重构   ③简化集成   ④文档   ⑤用于设计 4.单元测试的限制   ①不可能覆盖所有执行路径,所以不可能保证捕捉到所有路径的错误   ②每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡 5.单元测试框架   Xunit  Nunit  JUnit  PHPUnit  CPPUnit 6.集成测试的主要实施方案   ①Big Bang   ②自顶向下   ③自底向上   ④核心系统集成  

使用 xUnit 编写 ASP.NET Core 单元测试

女生的网名这么多〃 提交于 2019-12-04 22:10:41
还记得 .NET Framework 的 ASP.NET WebForm 吗?那个年代如果要在 Web 层做单元测试简直就是灾难啊。.NET Core 吸取教训,在设计上考虑到了可测试性,就连 ASP.NET Core 这种 Web 或 API 应用要做单元测试也是很方便的。其中面向接口和依赖注入在这方面起到了非常重要的作用。 本文就来手把手教你如何用 xUnit 对 ASP.NET Core 应用做单元测试。.NET Core 常用的测试工具还有 NUnit 和 MSTest,我本人习惯用 xUnit 作为测试工具,所以本文用的是 xUnit。 创建示例项目 先用 ASP.NET Core API 模板建一个应用。 模板为我们自动创建了一个 ValuesController,为了方便演示,我们只留其中一个 Get 方法: 1 public class ValuesController : ControllerBase 2 { 3 // GET api/values/5 4 [HttpGet("{id}")] 5 public ActionResult<string> Get(int id) 6 { 7 return "value"; 8 } 9 } 然后再添加一个 xUnit 单元测试项目: 模板自动为我们添加好了 xUnit 引用: 1 <ItemGroup> 2

Junit单元测试

拟墨画扇 提交于 2019-12-04 21:01:46
JUnit简介 JUnit 是用于编写和运行可重复的自动化测试的开源测试框架,这样可以保证我们的代码按预期工作。JUnit 可广泛用于工业和作为支架(从命令行)或IDE(如 IDEA)内单独的 Java 程序。主要是用于后台的方法测试,避免重复的启动项目。 断言测试预期结果。 测试功能共享通用的测试数据。 测试套件轻松地组织和运行测试。 图形和文本测试运行。 JUnit 用于测试: 整个对象 对象的一部分 - 交互的方法或一些方法 几个对象之间的互动(交互) JUnit 特点 JUnit 是用于编写和运行测试的开源框架。 提供了注释,以确定测试方法。 提供断言测试预期结果。 提供了测试运行的运行测试。 JUnit 测试让您可以更快地编写代码,提高质量 JUnit 是优雅简洁。它是不那么复杂以及不需要花费太多的时间。 JUnit 测试可以自动运行,检查自己的结果,并提供即时反馈。没有必要通过测试结果报告来手动梳理。 JUnit 测试可以组织成测试套件包含测试案例,甚至其他测试套件。 Junit 显示测试进度的,如果测试是没有问题条形是绿色的,测试失败则会变成红色。 JUnit 注解 @BeforeClass 全局只会执行一次,而且是第一个运行 @Before 在测试方法运行之前运行 @Test 测试方法 @After 在测试方法运行之后允许 @AfterClass 全局只会执行一次

单元测试 - 探索java web 单元测试的正确姿势

南笙酒味 提交于 2019-12-04 19:11:20
单元测试 - 探索java web 单元测试的正确姿势 一丶起因   笔者一直听闻TDD,自动化测试等高大上的技术名词, 向往其中的便利之处, 但一直求而不得, 只因项目中有各种依赖的存在,其中最大的依赖便是数据库. java web 项目大部分都是写sql语句, 不依赖数据库, 便测试不了sql语句的正确性, 但依赖数据库又有种种不变之处. 除此之外, 还有种种类与类之间的依赖关系,很不方便. 遗憾的是, 网上各种文章参差不齐, 笔者所参与的项目很少甚至没有单元测试, 修改代码, 如履薄冰. 在苦思不得其解之际, 向优秀开源项目mybatis求取经验, 终获得一些答案. 二丶实践思路   mybatis使用单元测试的方式是使用内存数据库做单元测试,单元测试前,先根据配置以及数据库脚本,初始化内存数据库,然后再使用内存数据库测试.所以,笔者也是采用这种思路.   除此之外, 还有各种类与类之间依赖关系, 笔者依据mybatis以及spring选择使用mockito框架mock解决   所以选用的工具有 hsql内存数据库, mockito mock工具, junit单元测试工具, spring-boot-test子项目 三丶实施测试   1. 在pom.xml添加hsql 以及mockito <dependency> <groupId>org.hsqldb</groupId>

.NET Core 3.0 单元测试与 Asp.Net Core 3.0 集成测试

人盡茶涼 提交于 2019-12-04 17:47:02
单元测试与集成测试 测试必要性说明 相信大家在看到单元测试与集成测试这个标题时,会有很多感慨,我们无数次的在实践中提到要做单元测试、集成测试,但是大多数项目都没有做或者仅建了项目文件。这里有客观原因,已经接近交付日期了,我们没时间做白盒测试了。也有主观原因,面对业务复杂的代码我们不知道如何入手做单元测试,不如就留给黑盒测试吧。但是,当我们的代码无法进行单元测试的时候,往往就是代码开始散发出坏味道的时候。长此以往,将欠下技术债务。在实践过程中,技术债务常常会存在,关键在于何时偿还,如何偿还。 上图说明了随着时间的推移开发/维护难度的变化。 测试框架选择 在 .NET Core 中,提供了 xUnit 、NUnit 、 MSTest 三种单元测试框架。 MSTest UNnit xUnit 说明 提示 [TestMethod] [Test] [Fact] 标记一个测试方法 [TestClass] [TestFixture] n/a 标记一个 Class 为测试类,xUnit 不需要标记特性,它将查找程序集下所有 Public 的类 [ExpectedException] [ExpectedException] Assert.Throws 或者 Record.Exception xUnit 去掉了 ExpectedException 特性,支持 Assert.Throws

lesson9_单元测试

扶醉桌前 提交于 2019-12-04 14:02:39
test case test suite test runner test fixture 测试用例 测试套件 测试执行 测试前的准备和测试后的清理工作(为编写用例里的setup , setdown) TestLoader 将 TestCase 放在 TestSuite里 , 然后执行 TextTestRunner , 存储结果 TestResult 一 . unittest的初级使用: 1. 导入 unittest 模块,被测文件或其中的类 2. 创建一个测试类,并继承 unittest.TestCase 3. 重写 setUp 和 tearDown 方法(如果有初始化条件和结束条件) 4. 定义测试函数,函数以 test_ 开头. 测试用例 5. 在函数体中使用断言来判断测试结果是否符合预期结果 6. 调用 unittest.main() 方法运行测试用例 来源: https://www.cnblogs.com/zhangniannian/p/11869472.html