单元测试

Junit4单元测试

匿名 (未验证) 提交于 2019-12-02 23:05:13
一、引入Junit4单元测试框架    项目上单击右键->new->other->JUnit-> Junit Test Case ->Next->New Juint 4 test ->Name->setup->teardown->Class Under Test->Next->勾选你要测试的函数 ->Finish->提示引入JUnit库->Finish 二、简单的实例代码 1.被测试类: 1 package com.zhang.java; 2 3 public class LoginSample { 4 public LoginSample() { //构造方法 5 System.out.println("构造方法被调用!"); 6 } 7 8 public boolean login(String ln, String pwd) { 9 if (ln != null && ln.length() > 2 && ln.length() < 17 && pwd != null && pwd.length() > 2 && pwd.length() < 17) { 10 if (ln.equals("zzp") && pwd.equals("123456")) { 11 System.out.println("恭喜您,登录成功!"); 12 return true; 13 } else

单元测试框架之unittest(一)

匿名 (未验证) 提交于 2019-12-02 23:03:14
一、单元测试的含义 unittest单元测试框架的设计灵感来源于Junit(Java语言的单元测试框架),它与其他语言的单元测试框架风格相类似,支持自动化测试、为测试共享setUp和shutDown、它可以在将测试用例聚合到一起形成一个集合一起执行的同时在测试报告中展示独立的测试结果。 为了达到此目的,unittest支持几个重要的面向对象式的概念: 1、test fixture   一个test fixture所做的事情是执行单个或多个测试用例时的准备工作和执行结束后的一些相关清理工作,这包括:创建临时或代理数据库、目录或开始服务器进程。 2、test case   一个test case 是一个独立的测试单元,针对于一组特定的输入得到的特殊相应的验证,通过继承unittest提供的基类TestCase, 然后可以创建新的测试用例 3、test suite   一个test suite 是一组测试用例的集合,也可以是一组test suite的集合,也可以两者混合的集合,test suite就是用来聚合你想要一起执行的测试用例的 4、test runner   一个test runner 是一个协调测试执行并向用户提供执行结果的组建,它可以使用图形界面、文本界面或返回一个特殊值标识测试执行的结果 二、实例代码 下面我们看Python官方给的一个简单的小例子,来测试三个字符串

Angular单元测试与E2E测试

匿名 (未验证) 提交于 2019-12-02 23:03:14
本文介绍了Angular单元测试和E2E测试的配置与测试方法。示例APP使用Angular 7 CLI创建,已配置好基础测试环境,生成了测试样例代码。默认,Angular单元测试使用Jasmine测试框架和Karma测试运行器,E2E测试使用Jasmine测试框架和Protractor端到端测试框架。 配置单元测试 Jasmine是一个用于测试JavaScript的行为驱动开发框架,不依赖于任何其他JavaScript框架。 Karma是测试运行器,为开发人员提供了高效、真实的测试环境,支持多种浏览器,易于调试。 配置文件 单元测试配置文件test.ts和karma.conf.js: test.ts import 'zone.js/dist/zone-testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; declare const require: any; // First, initialize the Angular testing environment.

python笔记24-unittest单元测试之mock.patch

匿名 (未验证) 提交于 2019-12-02 22:56:40
上一篇 python笔记23-unittest单元测试之mock 对mock已经有初步的认识, 本篇继续介绍mock里面另一种实现方式,patch装饰器的使用,patch() 作为函数装饰器,为您创建模拟并将其传递到装饰函数 官方文档地址 1.unittest.mock.patch(target,new = DEFAULT,spec = None,create = False,spec_set = None,autospec = None,new_callable = None,** kwargs ) target参数必须是一个str,格式为‘package.module.ClassName‘, 注意这里的格式一定要写对,如果你的函数或类写在pakege名称为a下,b.py脚本里,有个c的函数(或类),那这个参数就写“a.b.c” new参数如果没写,默认指定的是MagicMock spec=True或spec_set=True,这会导致patch传递给被模拟为spec / spec_set的对象 new_callable允许您指定将被调用以创建新对象的不同类或可调用对象。默认情况下MagicMock使用。 1.接着上一篇 python笔记23-unittest单元测试之mock ,新建一个temple.py,写入以下代码 # 保存为temple.py # coding:utf-8

python单元测试pytest

匿名 (未验证) 提交于 2019-12-02 22:56:40
1、pytest简介 pytest是 Python 的一种单元框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败 能够支持简单的单元测试和复杂的功能测试 支持重复执行失败的case 支持运行由nose, unittest编写的测试case 具有很多第三方插件,并且可以自定义扩展 方便的和持续集成工具集成 支持参数化 2、安装pytest pip install pytest 3、举例 (1)单测试case 执行测试的时候,我们只需要在测试文件test_sample所在的目录下,运行py.test即可。pytest会在当前目录及其子目录下寻找以test开头的py文件或者以test结尾的py文件(即测试文件),找到测试文件之后,进入到测试文件中寻找test_开头的测试函数并执行。 在当前目录下新建文件 test_champ.py def func(x): return x + 1 def test_answer(): assert func(3)==5 在命令行输入py.test [-q],加上-q(quiet)输出结果会省去pytest版本信息,便可以看到执行的成功与失败的原因了 (2)多测试case 当需要编写多个测试样例的时候

Python 单元测试

匿名 (未验证) 提交于 2019-12-02 22:51:30
使用 【测试套件】 批量执行【测试用例】的步骤: # 1 import unittest # 2.加载测试用例所在的模块 from Python_unittest import two_num_add as num_add from Python_unittesr import two_num_multi as num_multi # 3. 创建测试套件 one_suite = unittest.TestSuite() # 4.通过模块来批量加载测试用例 # 定义测试加载器对象 one_loader = unttest.TestLoader() one_suite.addTest(one_loader.loadTestsFromModule(num_multi))  # 执行顺序与套件添加的顺序有关 one_suite.addTest(one_loader.loadTestsFromModule(num_add)) # 5.执行用例 # 创建执行器对象 one_runner = unittest.TextTestRunner() one_runner.run(one_suite) 使用【discover】 import unittest # one_suite = unittest.defaultTestLoader.discover(".") # .代表当前py文件所在的路径

使用Visual Studio 2013进行单元测试--初级篇

非 Y 不嫁゛ 提交于 2019-12-02 22:51:07
1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为UnitTestDemo 2.在解决方案里面新增一个单元测试项目。取名为UnitTestDemoTest 创建完毕后项目结构大概如下: 3.进入控制台项目UnitTestDemo的Program类,创建一个Add方法。 namespace UnitTestDemo { class Program { static void Main(string[] args) { } public static int Add(int num1, int num2) { return num1 + num2; } } } 4.我们的目的就是测试上面的Add方法运行是否正常,返回结果是否正确。 5.在单元测试项目中引用控制台项目,引用完毕后项目结构如下: 6.单元测试项目里面UnitTest1这个类的名字取得太难看了,我们把名字改为ProgramTest,表明这是在测试Program类。改完如下: using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest { [TestClass] public class ProgramTest { [TestMethod] public void

Laravel 单元测试-模拟认证的用户

匿名 (未验证) 提交于 2019-12-02 22:11:45
在 Laravel 编写单元测试时经常会遇到需要模拟认证用户的时候,比如新建文章、创建订单等,那么在 Laravel unit test 中如何来实现呢? Laravel 的官方文档中的测试章节中有提到: Of course, one common use of the session is for maintaining state for the authenticated user. The actingAs helper method provides a simple way to authenticate a given user as the current user. For example, we may use a model factory to generate and authenticate a user: <?php use App\User; class ExampleTest extends TestCase { public function testApplication() { $user = factory(User::class)->create(); $response = $this->actingAs($user) ->withSession(['foo' => 'bar']) ->get('/'); } } 其实就是使用

使用 Moq 测试.NET Core - Why Moq?

匿名 (未验证) 提交于 2019-12-02 22:10:10
什么是Mock 当对代码进行测试的时候, 我们经常需要用到一些模拟(mock)技术. 绿色 的是需要被测试的类, 黄色 是它的依赖项, 灰色 的无关的类 在一个项目里, 我们经常需要把某一部分程序独立出来以便我们可以对这部分进行测试. 这就要求我们不要考虑项目其余部分的复杂性, 我们只想关注需要被测试的那部分. 这里就需要用到模拟(Mock)技术. 因为, 请仔细看. 我们想要隔离测试的这部分代码对外部有一个或者多个依赖. 所以编写测试代码的时候, 我们需要提供这些依赖. 而针对隔离测试, 并不应该使用生产时用的依赖项, 所以我们使用模拟版本的依赖项, 这些模拟版依赖项只能用于测试时, 它们会使隔离更加容易. 绿色 的是需要被测试的类, 黄色 是 Mock 的依赖项 Mock技术带来的优点 使用Mock技术, 可以有如下的优点: 提高测试运行速度 , 例如可以模拟DB, Web Service等比较慢的服务, 以及算法等. 支持并行开发 , 例如实际的依赖项还没有完成开发, 或者等待其他团队开发依赖项. 提高测试可靠性 , 例如有时这个依赖项的bug太多了, 经常由于依赖项的原因导致测试失败, 那么就应该使用mock版本来验证我们自己写的代码. 减少开发/测试成本 , 有时程序可能依赖一些云服务, 这些服务是按调用次数收费的, 那么就可以使用Mock版本来节省这方面的开资,

C# 单元测试学习笔记

匿名 (未验证) 提交于 2019-12-02 22:06:11
1、什么是单元测试 2、单元测试的好处 (1)协助程序员尽快找到代码中bug的具体位置 (2)能够让程序员对自己的程序更有自信 (3)能够让程序员在提交项目之前就将代码变的更加的强壮 (4)能够协助程序员更好的进行开发 (5)能够向其他的程序员展示你写的程序该如何调用 (6)能够让项目主管更了解系统当前的情况 3、单元测试工具 4、如何编写单元测试 4.1 Assert类 Assert中文意思是断言。 4.2 TestClass特性 4.3 TestMethod特性 4.4 怎么评判一个单元测试是否合理或者达到测试目的? 答案是 代码覆盖率。 代码覆盖率是单元测试写的是否合理或是否达到要求的唯一标准。 代码覆盖率是测试代码所运行的实际程序路径的覆盖率。 怎么知道代码覆盖率是多少呢? VS中提供了查看代码覆盖率的工具。 在单元测试项目中,打开测试资源管理器。 双击下面的方法, 深棕色的表示为 没有被测试到的代码。 浅蓝色的表示为 被测试到的代码。 浅橘色的表示为 部分被测试到的代码。 5、单元测试的标准 5.1 对已经存在的项目添加单元测试 步骤一:对所有程序集中的公共类以及公共类里面的公开方法添加单元测试 步骤二:对于构造函数和公共属性进行单元测试 步骤三:添加全面单元测试 5.2 对新项目添加单元测试 刚刚开始的项目,已开始就应该对所有公共的方法和属性都添加单元测试。 5.3