C#测试假设前提语言&工具

来源:互联网 / 作者:SKY / 2017-11-22 10:10 / 点击:
这里先容C#测试假设前提是构建正确的措施最重要的一个要领。在你写一个函数时,你应该思量并确定你对谁人函数做了什么样的假设。
Tech Neo技能沙龙 | 11月25号,九州云/ZStack与您一路切磋云期间收集界线打点实践

C#测试照旧较量常见的对象,这里我们首要先容C#测试假设前提,包罗先容大大都措施的bugs呈此刻措施员之间的接口等方面。

NET Framework中包括很多器材可以用来更快、更轻易地编写正确的措施。但我们得面对这样的环境:呈现bugs。不管措施何等简朴,措施员都也许堕落。按照我的履历,大大都措施的bugs呈此刻措施员之间的接口:当一个措施员编写的代码被另一个措施员挪用时。不知何以,时代站长网,挪用者粉碎了代码编写时做的假设。是谁的过失呢?这并没相关,更重要的是你能多快修睦它?下面这些能力将帮你在措施投入行使前更快地发明并办理这些题目。最终,本了解帮你诊断任何简直在行使中呈现的题目。

C#测试假设前提

C#测试假设前提是构建正确的措施最重要的一个要领。在你写一个函数时,你应该思量并确定你对谁人函数做了什么样的假设。你应该问本身以下这些题目:
1. 当这个函数被挪用时,这个工具必需是奈何的(工具初试化,某个内涵变量值)?
2. 当这个函数存在时,这个工具将会奈何(还是#1,但包罗该函数的副浸染)?
3. 该函数的任何参数必需是奈何的(应承空值吗,输入值的范畴是什么)?
4. 返回值必需是奈何的?

一旦你问了本身这四个题目并作出答复后,把谜底放到代码中。在C#中,用System.Diagnostics.Debug类的Assent要领来暗示:

public bool ProcessIterations (int  numIters)  {  Debug.Assert (numIters > 0,  "ProcessIterations.",  "Iterations must be more than 0");  // More code... 

该代码片断执行了numiters参数必需大于零这样一个假设。假如你用一个无效的参数挪用processiterations,该assert被触发。这时辰,措施遏制运行并关照用户呈现的错误。声明(assertions)只被编译到debug 版本中的措施,以是它们不影响出产环境中的机能。

为什么用这种要领? 运用这种能力可以确保很快地发明对你的类的要领未预料地行使。然后,可能挪用者修改他的代码,可能要求在你的类的举动(behavior)中修改。

阅读延展

1
3