博文

C# 对 System.Reactive 可观察对象进行单元测试

一、问题 假设程序的某一部分正在使用  IObservable<T> ,而你需要想办法对它进行单元测试。 二、解决方案 System.Reactive 有一些可以生成序列的运算符(比如  Return ),还有可以将响应式序列转换为常规集合或项的其他运算符(比如  SingleAsync )。可以使用  Return  之类的运算符来创建可观察依赖项的存根,使用  SingleAsync  之类的运算符来测试输出。

C# 对数据流网格进行单元测试

一、问题 假设在应用程序中有数据流网格,你需要确认它正常工作。 二、解决方案 数据流网格是独立的,它有自己的寿命,且本质上是异步的。因此,要测试数据流网格,最自然的方法是异步单元测试:

C# 对 async void 方法进行单元测试

一、问题 假设需要对某个  async void  方法进行单元测试。 二、解决方案 停止吧! 相对于解决这个问题,竭尽全力避免它才是更应该做的。如果能把  async void  方法改成  async Task  方法,那就再好不过了。

C# 对预期失败的 async 方法进行单元测试

一、问题 假设你需要编写单元测试来检查  async Task  方法的某次失败。 二、解决方案 如果在进行桌面端开发或服务器端开发,那么 MSTest 能够通过常规的  ExpectedException  属性来支持失败测试:

C# 对 async 方法进行单元测试

一、问题 假设需要对某个  async  方法进行单元测试。 二、解决方案 大多数现代单元测试框架支持  async Task  单元测试方法,包括 MSTest、NUnit、xUnit。从 Visual Studio 2012 起,MSTest 开始支持这些测试,如果使用别的单元测试框架,那么需要升级到最新版本。

类 ref 结构体(C# 7.2)

C# 7.2引入了类 ref 结构体的概念:只存在于栈内存上的结构体。与自定义task类型相似,很可能我们永远不需要自行声明类 ref 结构体,但我们所使用的framework中很可能内建类 ref 结构体。