先来点题外话,清明节前把工作辞了(去 tm 的垃圾团队,各种拉帮结派.勾心斗角).这次找工作就得慢慢找了,不能急了,希望能找到个好团队,好岗位吧.顺便这段时间也算是比较闲,也能学习一下和填掉手上的坑. 说实话好久没写博客了,一个是手上的工作确实忙,第二个是还有各种各样的坑.写本文的原因也是因为手上的一个坑——ImageEx,WPF/UWP 上的图片缓存控件. 在我写的这个图片缓存控件中,其中有一个地方就是要根据图片的 url 地址,然后来存储或者获取本地的图片文件的.但是呢,我们不可能把 url…
温馨提醒:本文需要知道什么是单元测试才能阅读. 在之前 WPF.ASP.NET 中,单元测试要捕捉指定异常,我们是通过 ExpectedExceptionAttribute 来实现的.如下图: 但是,在 UWP 的单元测试项目中,是没有 ExpectedExceptionAttribute 的(没想到不同平台,M$ 连单元测试的 API 都改-_-|||).那难道只能写个 try-catch,然后检测 Exception 类型是否符合吗?这样写起来未免有些繁琐了.最终,我在另一个命名空间发现了另…
先来点题外话,清明节前把工作辞了(去 tm 的垃圾团队,各种拉帮结派.勾心斗角).这次找工作就得慢慢找了,不能急了,希望能找到个好团队,好岗位吧.顺便这段时间也算是比较闲,也能学习一下和填掉手上的坑. 说实话好久没写博客了,一个是手上的工作确实忙,第二个是还有各种各样的坑.写本文的原因也是因为手上的一个坑——ImageEx,WPF/UWP 上的图片缓存控件. 在我写的这个图片缓存控件中,其中有一个地方就是要根据图片的 url 地址,然后来存储或者获取本地的图片文件的.但是呢,我们不可能把 url…
今天,我们将研究如何使用Benchmark.Net来测试代码性能.借助基准测试,我们可以创建基准来验证所做的更改是否按预期工作并且不会导致性能下降. 并非每个项目都需要进行基准测试,但是如果您正在开发的是NuGet程序包或通用dll,则很有意义.我们将使用它来解决一个古老的问题,字符串拼接,比如下面这样: string myString = "string1" + "string2" + "string3" + "string4&quo…
开篇:上一篇我们学习单元测试和核心技术:存根.模拟对象和隔离框架,它们是我们进行高质量单元测试的技术基础.本篇会集中在管理和组织单元测试的技术,以及如何确保在真实项目中进行高质量的单元测试. 系列目录: 1.入门 2.核心技术 3.测试代码 一.测试层次和组织 1.1 测试项目的两种目录结构 (1)集成测试和单元测试在同一个项目里,但放在不同的目录和命名空间里.基础类放在单独的文件夹里. (2)集成测试和单元测试位于不同的项目中,有不同的命名空间. 实践中推荐使用第二种目录结构,因为如果我们不把…
Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询     SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL代码. 但是,EF 连接MYSQL 之后,部分代码没法查询EF生成的SQL 代码,如下代码: db.BaseDept.Remove(basedept)的时候, db.BaseDept打断点,查询到的是select 语句, Remove之后,就变成执行结果了,具体生成的DELETE 的SQL 代码无法…
1.过滤整个测试代码,可以直接在命令行上指定 mvn clean install -Dmaven.test.skip=true 提示:以上为举例,具体的构建阶段可以自定义,其中maven.test.skip为是否进行测试. 或者 mvn clean install -DskipTests 还可以直接在pom.xml文件上指定,比如使用maven-surefire-plugin时的配置 <plugin> <groupId>org.apache.maven.plugins</gr…
事由: 这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别. 顺带提一下: 啊啊啊啊 等我仔细看文档的时候文档 发现它让我用Release的模式去运行benchmark. emmm...其实我之前一直在用Debug模式调试.. 所以各位在运行的时候,The best way is build our benchmark in the Release mode and run it from the command…
测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编写了一段代码,如何编译运行,查看结果是否正确,很多时候,还得自己想很多特殊的(比如说零值,边界值)测试数据来检测所写代码.算法是否正确.那个时候,感觉还好,比较输出只是只是控制台的一个简单的数字或者字符.在学习iOS开发中,很多时候也是要测试的,这种输出是必须在点击一系列按钮之后才能在屏幕上显示出来…
NLogger特性: 一:不依赖于第三方插件和支持.net2.0 二:支持多线程高并发 三:读写双缓冲对列 四:自定义日志缓冲大小 五:支持即时触发刷盘机制 六:先按日期再按文件大小滚动RollingFile日志 七:支持日志存储位置,日志文件前缀的个性化定义 一:为什么要特别强调不依赖于第三方插件和支持.net2.0 NLogger包括名称空间也未超过200行代码,可见日志是相当轻量级的,如果是依赖于第三方软件的支持,有失轻量级的定义. NLogger的第一个版本是基本于.net4.0开发,但…