我们在写代码的时候不能保证我们写出来的代码是正确的,所以我们经常要单元测试。
单元测试和重构都是在做完一个小小函数一般就要进行一次,越早做就越好,可以比较早发现问题,这时我们还记得我们写的内容,不过比重构好的是,重构我们经常不知道要叫什么名字,而单元测试反而就比较简单。
右击解决方案,添加新项目
![](https://box.kancloud.cn/2016-04-08_57076372551f4.jpg)
C#->Windows->通用->单元测试应用
![](https://box.kancloud.cn/2016-04-08_5707637269047.jpg)
命名我是叫 测试
在新建单元测试右击引用
![](https://box.kancloud.cn/2016-04-08_5707637269047.jpg)
把工程引用
![](https://box.kancloud.cn/2016-04-08_570763728dbd2.jpg)
打开测试项目
一般测试哪个类我就会新建一个类名称和要测试类相同,类里面函数和要测试函数名相同。
我在做一个windows Markdown,里面有函数把剪贴的文本覆盖Textbox选文本,我不知道这个函数写的是不是对,于是我就在单元测试,新建一个类
测试函数所在的类是winmain,所以在单元测试新建一个类winmain
在新建类加上
~~~
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
~~~
在类定义前
~~~
[TestClass]
~~~
在类里面加函数 clipboard_substitution
函数需要在函数前
~~~
[TestMethod]
~~~
我的函数需要测试输入一个文本是否会把选择的string替换输入文本
我们在测试单元写测试输入
~~~
var view =new produproperty.ViewModel.winmain(null);
string text = "要替换文本";
//把替换两个字替换为string
view.text = text;
view.select = 1;
view.select_length = 2;
view.clipboard_substitution("string");
~~~
然后写Assert
~~~
Assert.AreEqual("要string文本",view.text);
~~~
右击运行
![](https://box.kancloud.cn/2016-04-08_57076372a144f.jpg)
可以在运行 所有测试
![](https://box.kancloud.cn/2016-04-08_57076372b7264.jpg)
测试通过
![](https://box.kancloud.cn/2016-04-08_57076372c9923.jpg)
我们还要做一些诡异测试
出现错误Index and length must refer to a location within the string.
这样就是我们函数有问题
如果通过了我们才可以说我们代码可以提交
Assert是返回结果true方法是测试通过,如果是其他就不通过,Assert可以有方法
| 方法 | 描述 |
| --- | --- |
| AreEqual | 两个值是否相等 |
| AreNotEqual | 两个值不相等 |
| AreNotSame | 两个值不相同 |
| AreSame | 两个值相同 |
- 前言
- UWP win10 app 新关键字x:Bing
- win10应用 UWP 使用MD5算法
- win10 UWP读写文件
- UWP appButtonBar样式
- C# 6.0 $"Hello {csdn}"
- Win10 UWP xaml 延迟加载元素
- UWP xaml 圆形头像
- UWP 绘制图形
- win10 uwp 通知Toast
- win10 UWP 显示地图
- win10 uwp 参考
- win10 uwp clone
- win10 uwp 装机必备应用 含源代码
- RichEditBox 使用自定义菜单
- win10 UWP FlipView
- win10 UWP 获取系统信息
- win10 UWP 申请微软开发者
- win10 UWP button
- win10 UWP Markdown 含源代码
- win10 UWP 应用设置
- win10 UWP 九幽数据分析
- win10 UWP 圆形等待
- win10 UWP 标题栏后退
- win10 UWP 单元测试
- win10 UWP 你写我读
- win10 UWP RSS阅读器
- win10 UWP MessageDialog 和 ContentDialog
- win10 UWP Hmac
- win10 UWP GET Post
- Win10 UWP Intro to controls and events
- win10 UWP Controls by function
- win10 uwp App-to-app communication 应用通信