zoukankan      html  css  js  c++  java
  • 关于断言(Assert)

      断言,字面上的意思大致是十分肯定的说,也就是说我们相信这个结果是真的.如果我们的断言不为真,那这个这个结果就和我们预期的结果不一样.在编程上同理,如果程序运行出来的结果和你想要的结果不一致,那你的程序里面的这个方法或者函数就达不到你想要的需求,也就是说这个程序是有一些问题的.这是网上关于断言的一些解释.

    编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。

      其实我感觉,断言就像是一个if语句,如果结果和你的预期一样,那么OK,结果为真继续运行.如果结果和预期不符,那么程序会抛出一个系统级错误(不是异常),并且终止程序运行.例如下面这个单元测试.

    1 public void AddTest()
    2  {
    3             int a = 20;
    4             int b = 20;
    5 
    6             Assert.AreEqual(Program.Add(a,b),40);
    7 }

    这是对一个加法方法的测试,我们分别给两个数a,b赋值并作为参数传递到方法Add(int num1,num2)中,Line 6 中的语句就是设置的断言,在这里我断言Add的返回值和40相等,运行测试,结果如下图:

    当我们把断言中的结果设置成其他的数字,再次运行测试,结果就会变成这样:

      断言的使用包括以下两种形式:

    1. assert Expression1
    2. assert Expression1:Expression2

      其中Expression1是一个布尔值,来判断断言是否成功.Expression2则是断言失败时输出的失败消息的字符串.

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/enhe/p/5312559.html
Copyright © 2011-2022 走看看