软件测试第六周学习笔记之“Win8 APP应用程序的白盒测试”
这周的学习笔记我想写点自己关于实验中碰到的问题和感想。
因为这次做的是白盒测试,所以我决定去测试一下上回测试的app的功能函数。
这次我用的是单元测试项目来做的白盒测试:
创建单元测试的步骤:
1.点击 “文件”->“添加”->“新建项目”
2.选择 windows应用程序-> 单元测试项目
3.在解决方案资源管理器中为单元测试项目下的引用上右击选择添加引用
4.选择解决方案下的项目中的用来测试的win8应用
接下来是单元测试的代码部分的编写了:
我要测试的是该项目中的一个字符串转化编码的函数,函数的功能是把字符串从gb2312编码转成utf8
public string GB2312ToUTF8(string str)
{
try
{
Encoding uft8 = Encoding.GetEncoding("UTF-8");
Encoding gb2312 = Encoding.GetEncoding("GBK");
byte[] temp = gb2312.GetBytes(str);
byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
string result = uft8.GetString(temp1,0,temp1.Length);
return result;
}
catch(Exception ex)//(UnsupportedEncodingException ex)
{
return null;
}
}
这是原函数的代码部分,然后在单元测试UNITTEST1.cs文件中加入下面这句话引用被测试项目的namespace
using 这是猜灯谜游戏;
紧接着就是编写测试函数了,我写的TestMethod1:
public void TestMethod1()
{
gamePage gp = new gamePage();
string str = "猜灯谜";
Encoding uft8 = Encoding.GetEncoding("UTF-8");
Encoding gb2312 = Encoding.GetEncoding("GBK");
byte[] temp = gb2312.GetBytes(str);
byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
string result = uft8.GetString(temp1, 0, temp1.Length);
string output = gp.GB2312ToUTF8(str);
Assert.AreEqual(result, output);
}
在这个函数中创建一个测试用例用来测试函数的功能是否如预期所示,然后自己做一遍编码的转换存到
字符串result中,最后创建一个断言判断单元测试中的函数输出结果和预期结果result是否一致。
然后我就去运行了一下这个单元测试项目,结果是这样的:
然后我就去寻找原因了,最后我总结了一下出现这个结果的原因:
我觉得这是因为被测试项目本身是一个win8应用,里面的类文件都是控制布局的类文件,也就是说都是UI对象的类,
所以运行之后会提示请使用UI的编码测试,而不是单元测试,要解决这个问题就只能换一个有自己的功能类的win8应用,
但是大家写的都是功能嵌入在布局类中的win8应用,所以没法解决这个问题。
软件测试第六周学习笔记之“Win8 APP应用程序的白盒测试”的更多相关文章
- 《Linux内核分析》第六周学习笔记
<Linux内核分析>第六周学习笔记 进程的描述和创建 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...
- Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程
Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...
- linux内核分析第六周学习笔记
LINUX内核分析第六周学习总结 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.c ...
- 20165326 java第六周学习笔记
第六周学习总结 ch8 String类对于有效处理字符序列信息非常重要. String对象的字符序列不能被修改删除,无法发生变化. StringBuffer类的对象实体的内存空间可以自动改变大小,便于 ...
- Linux内核分析——第六周学习笔记20135308
第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管 ...
- 第六周学习笔记,vc各类控件的输入输出
6w学习笔记 vc控件的输入输出 单选按钮 当单击 RadioButton 控件时,其 Checked 属性设置为 true,并且调用 Click 事件处理程序.当 Checked 属性的值更改时,将 ...
- 20135320赵瀚青LINUX第六周学习笔记
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 这周主要讲解的是进程. ...
- Linux内核分析——第六周学习笔记
进程的描述和进程的创建 前言:以下笔记除了一些讲解视频中的概念记录,图示.图示中的补充文字.总结.分析.小结部分均是个人理解.如有错误观点,请多指教! PS.实验操作会在提交到MOOC网站的博客中写.
- 20179223《Linux内核原理与解析》第六周学习笔记
视频知识学习 给MenuOS增加time和time-asm命令 1.更新menu代码到最新版 2.再main()函数中增加MenuConfig 3.增加对应的Time函数和TimeAsm函数(这里的函 ...
随机推荐
- js中call、apply、bind的用法
原文链接:http://www.cnblogs.com/xljzlw/p/3775162.html var zlw = { name: "zlw", sayHello: funct ...
- NotePad++常用快捷键。——Arvin
Ctrl+单键 Ctrl+C 复制 Ctrl+X 剪切 Ctrl+V 粘贴 Ctrl+Z 撤消 Ctrl+Y 恢复 Ctrl+A 全选 Ctrl+F 键查找对话框启动 Ctrl+H 查找/替换对话框 ...
- spring-boot启动信息中non-fatal error
java.lang.ClassNotFoundException: org.springframework.data.web.config.EnableSpringDataWebSupport缺少依赖 ...
- navicat 快捷键
1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗 ...
- zookeeper 安装 测试及集群
centos 安装 zookeeper-3.5.2-alpha.tar.gz 网上搜索了 一下 安装教程 其实很简单 主要总结一下 中间遇到的坑 1.zookeeper 3.4.6 启动失败. 很有可 ...
- logistic原理与实践
逻辑回归模型是一种将影响概率的不同因素结合在一起的指数模型,得到的是0~1之间的概率分布.自变量范围是,值域范围限制在0~1之间.在搜索广告.信息处理和生物统计中有广泛的应用.例如搜索广告的点击率预估 ...
- windows下安装beautifulsoup4
方法一: pip install beautifulsoup4 方法二: 在官网下载安装包后,放在python目录下--运行cmd--进入bs4安装包路径--输入setup.py install 测试 ...
- 基础算法之插入排序Insertion Sort
原理 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元 ...
- android studio异常关机后出现的问题
使用android studio 时突然卡死. 重启后所有项目都打不开,提示workspace.xml Error:content is not allowed in prolog 打开work ...
- java中使用poi导入导出excel文件_并自定义日期格式
Apache POI项目的使命是创造和保持java API操纵各种文件格式基于Office Open XML标准(OOXML)和微软的OLE复合文档格式(OLE2)2.总之,你可以读写Excel文件使 ...