08 2019 档案

摘要:"系列目录" 有的童鞋可能已经发现,PipeLine项目与自由式项目相比,可配置的项少了很多,比如说环境变量定义,所有步骤完成后执行动作,拉git代码库等.其实这些功能并没有缺,而是配置的方式不一样了,以前是通过图形化界面配置,虽然直观简便,但是功能不能包罗万像,对于一些复杂的项目显得捉襟见肘,而J 阅读全文
posted @ 2019-08-30 08:13 周国通 阅读(9945) 评论(2) 推荐(1) 编辑
摘要:"系列目录" 上一节我们讲解了如何使用bat脚本或者powershell脚本自身的机制来达到参数化构建的目的,这在一定程序上增加了灵活性,然而缺点也相当明显:它只能适应一些相对比较固定的参数传入(比如像上一节讲到的,构建的环境分为( 和`production D`盘下的一个文件夹,现在D盘满了需要指 阅读全文
posted @ 2019-08-29 08:15 周国通 阅读(8896) 评论(2) 推荐(4) 编辑
摘要:"系列目录" 本系列已经很久没有更新了,接前面基础篇,本系统主要介绍jenkins构建里的一些高级特性.包括脚本参数化,Jenkins Pipeline与及在PipeLine模式下如何执行常见的传统构建任务(这里指jenkins自由风格构建模式),jenkins cli,jenkins ssh,je 阅读全文
posted @ 2019-08-28 08:15 周国通 阅读(7208) 评论(1) 推荐(2) 编辑
摘要:"系列目录" 我们前面说过.Moq在创建模拟对象的时候,简单对象赋值默认值,引用对象赋值为null,但是有些时候接口里面还包含另一个接口对象,我们知道Moq是可以模拟一个接口对象的,我们可以通过配置让Moq模拟所有可以Mock的对象. 我们新增如下代码 比如我们要模拟一个IOutString对象,如 阅读全文
posted @ 2019-08-27 08:14 周国通 阅读(1212) 评论(0) 推荐(2) 编辑
摘要:"系列目录" Moq库简介及安装 Moq简介 Moq是.net平台下的一个非常流行的模拟库,只要有一个接口它就可以动态生成一个对象,底层使用的是Castle的动态代理功能. 它的流行赖于依赖注入模式的兴起,现在越来越多的分层架构使用依赖注入的方式来解耦层与层之间的关系.最为常见的是数据层和业务逻辑层 阅读全文
posted @ 2019-08-26 08:29 周国通 阅读(7659) 评论(3) 推荐(6) 编辑
摘要:"系列目录" 为String指定一个值. 在第三节里我们讲了如何使用自定义配置加上一个自定义算法生成一个自定义字符串,然而有些时候我们仅仅是需要某个字段是有意义的,这个时候随便生成的字符串也满足不了我们的需求.在一些简单场景下,我们可以显式的给一个字段指定一个值. 看以下代码 这里的Build方法返 阅读全文
posted @ 2019-08-24 10:52 周国通 阅读(1505) 评论(1) 推荐(3) 编辑
摘要:"系列目录" 有了上一节自定义配置,很多问题都能解决了,但是如果仅仅是为了解决一个简单问题那么创建一个类显得有点繁重.其实AutoFixture在创建Fixture对象时有很多方便的Fluent配置,我们这里介绍一些比较常用了. 创建对象是忽略一些属性 有些时候有这样的一些业务场景,有些字段是非必填 阅读全文
posted @ 2019-08-23 12:59 周国通 阅读(1107) 评论(0) 推荐(2) 编辑
摘要:"系列目录" 实际工作中我们需要的数据逻辑万千,千变万化,而AutoFixture默认是按照一定算法随机生成一些假数据,虽然这在多数时候是ok的,但是可能不能满足我们的所有业务场景,有些时候我们需要进行一些配置,以期达到指定目标. AutoFixture简单使用 前面我介首先介绍的是AutoFixt 阅读全文
posted @ 2019-08-22 08:19 周国通 阅读(1475) 评论(1) 推荐(3) 编辑
摘要:"系列目录" autofixture简介 有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixture并且它能与moq,rhinomock等框架结合,对单元测试带来的便捷性,可维护性 阅读全文
posted @ 2019-08-21 08:21 周国通 阅读(1927) 评论(1) 推荐(6) 编辑
摘要:"系列目录" 通过前面的单元测试,我们能够保证项目的基本模块功能逻辑是正常的,通过集成测试能够保证接口的请求是正常的.然而最终项目交付我们还需要对项目进行页面的行为进行测试,比如页面布局是否正常,按钮是否能点击,点击后执行的动作是否正确,链接是否正常等功能进行测试,表单提交是否返回正确结果等.这些都 阅读全文
posted @ 2019-08-20 08:07 周国通 阅读(996) 评论(2) 推荐(3) 编辑
摘要:"系列目录" 从.net到.net core以后,微软非常努力,以每年一到两个大版本的频率在演进.net core,去年相继发布了.net core 2.1和2.2,其中2.1是长期支持版,不断的快速更新一方面快速弥补了相比.net framework缺失的api,同时也带来了不少激进性的改变,导致 阅读全文
posted @ 2019-08-19 08:18 周国通 阅读(955) 评论(0) 推荐(2) 编辑
摘要:"系列目录" 前面我们讲的很多单元测试的的方法和技巧不论是在.net core和.net framework里面都是通用的,但是mvc项目里有一种比较特殊的类是Controller,首先Controller类的返回结果跟普通的类并不一样,普通的类返回的都是确定的类型,而mvc项目的返回的Action 阅读全文
posted @ 2019-08-16 07:57 周国通 阅读(1215) 评论(0) 推荐(4) 编辑
摘要:"系列目录" 通过前面两节讲解,我们的测试类中已经有两个测试方法了,总体上如下 改进一:将对象初始化移到外部类中 以上方法看似没有问题,实际上却有一个性能陷阱,我们通过前面章节的知识已经知道,xunit里测试类的构造函数会在每一个测试方法运行的时候都执行一遍,通常情况下我们的测试代码远不止三几个,有 阅读全文
posted @ 2019-08-15 08:04 周国通 阅读(901) 评论(0) 推荐(5) 编辑
摘要:"系列目录" .net core集成测试之Post请求 Web项目中,很多与用户数据交互的请求都是Post请求,想必大家都用过HttpClient构造过post请求,这里并不对HttpClient做详细介绍,只介绍一些常用的功能.并结合AutoFixture演示如何自动构造请求数据,简单手动创建Js 阅读全文
posted @ 2019-08-14 08:21 周国通 阅读(921) 评论(0) 推荐(0) 编辑
摘要:"系列目录" 在web项目里,我们把每一层的代码的单元测试都通过并不代表程序能正常运行,因为这个过程缺失了http管道,很多时候我们还还需要把项目布在iis环境中或者在vs里启动iis express服务器进行集成测试.对于返回view的的方法我们通常是在浏览器中输入地址进行测试,对于返回数据的方法 阅读全文
posted @ 2019-08-13 08:27 周国通 阅读(887) 评论(0) 推荐(2) 编辑
摘要:"系列目录" Nunit里提供了丰富的数据测试功能,虽然Xunit里提供的比较少,但是也能满足很多场景下使用了,如果数据场景非常复杂,Nunit和Xunit都是无法胜任的,有不少测试者选择自己编写一个数据提供程序,但是更建议使用AutoFixture框架,一是因为自己工作中写的往往只是为了解决某个或 阅读全文
posted @ 2019-08-12 08:02 周国通 阅读(1607) 评论(1) 推荐(3) 编辑
摘要:"系列目录" 为了支持跨平台,微软为.net平台提供了.net core test sdk,这样第三方测试框架诸如Nunit,Xunit等只需要按照sdk提供的api规范进行开发便可以被dotnet cli工具调用,这样就解决了在持续集成过程中第三方框架依赖于windows平台上的各自runner的 阅读全文
posted @ 2019-08-09 08:10 周国通 阅读(2177) 评论(0) 推荐(2) 编辑
摘要:"系列目录" 在开始之前我们先看一个陷阱 用到的Person类如下 这个类以前也用过,有三个属性和一个方法,其中方法用于判断Name字段是否包含大写字母B,如果包含返回true,不包含返回false,如果Name为null则抛出异常 测试类如下 第一个测试给Name赋值,然后断言用户名不为空,这显然 阅读全文
posted @ 2019-08-08 08:04 周国通 阅读(1413) 评论(0) 推荐(2) 编辑
摘要:"系列目录" 在进行单元测试的时候,很多时候,很多时候我们都是在单元测试方法内部提供特定的值,但是这样测试往往造成样本数不足从而导致覆盖的结果不够全面,很多时候我们更想提供来自外部的,满足条件的一组值来进行测试.其实Nunit框架本身提供了为测试用例提供值的能力.我们可以对它进行扩展来实现导入外部的 阅读全文
posted @ 2019-08-07 08:19 周国通 阅读(1641) 评论(0) 推荐(4) 编辑
摘要:"系列目录" that是Nunit的新语法,语义上不如简单断言,使用上也更加复杂,但是其功能更加强大. 其基本语法如下代码片段示: 如上代码片段未,第一部分为要判断的对象,可以是一个变量,也可以是 ,第二个是约束条件.如果参数有多个,That语义更加清析. That几乎包含所有简单断言里的语法,它除 阅读全文
posted @ 2019-08-06 08:14 周国通 阅读(815) 评论(0) 推荐(3) 编辑
摘要:"系列目录" 使用前面讲过的方法基本上能够完成工作中的大部分任务了,然而有些功能实现起来还是比较麻烦的,比如说 等,Nunit提供了一些特定的方法用来实现一些用普通断言比较难以实现的扩展类型和方法. 下面介绍一下 StringAssert 类型下面的方法 StringAssert.AreEqualI 阅读全文
posted @ 2019-08-05 08:03 周国通 阅读(1153) 评论(3) 推荐(2) 编辑
摘要:"系列目录" Nunit测试基础之简单断言 在开始本篇之前需要补充一些内容,通过前面搭建Nunit测试环境我们知道要使一个方法成为单元测试方法首先要在此方法所在类加上TestFixture注解,并且在该方法上添加上Test注解. 然而还有一点需要注意:所有进行单元测试的方法必须标识为public访问 阅读全文
posted @ 2019-08-02 08:07 周国通 阅读(1449) 评论(2) 推荐(2) 编辑
摘要:"系列目录" 单元测试及测试驱动开发简介 什么是单元测试 单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读、并且可维护。只要产品代码不发生变化,单元测试的结 阅读全文
posted @ 2019-08-01 08:19 周国通 阅读(1512) 评论(1) 推荐(3) 编辑