zoukankan      html  css  js  c++  java
  • 梁梦瑶 20190919-4 单元测试

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/7629

    git地址:https://e.coding.net/sxl357/f4.git

    结对伙伴:宋晓丽

    使用语言:python

    测试框架:UnitTest

    测试内容:四则运算试题生成

    要求1 对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标。 (40分)

     

    要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。由2位同学中的一位发布博客提交到作业,指明自己的结对伙伴;另一位在作业中引用这一博客,指明自己的结对伙伴。(40分)

    错误一:使用测试用例2

    在测试循环出题功能时出现错误:

    发现是由于如果用户输入?的话就会出错。于是我们找到对应的函数进行了修改:加上对问号的替换,如果用户输入?就将"?"替换为""。

    原代码:

    def question():
        num = 0
        global correctNumber  # 定义全局变量,统计答对的次数
        while num <20:
            generate=Expression() #定义对象
            expression = generate.expre()#调用generate()函数,生成运算式
            print(expression + "=")
            expression1 = make_Expression(expression)  # 将中缀表达式转换为后缀表达式
            result = make_Value(expression1)  # 计算后缀表达式的值
            userAnswer = input()  # 输入你的答案
            if (float(userAnswer) == float(result)):  # 判断用户结果是否和正确答案相等
                correctNumber += 1
                print("答对了,你真是个天才!")
            else:
                result = str(result)
                print('再想想吧,答案似乎是' + result + '喔!')
            num += 1
        correctNumber = str(correctNumber)
        print("你一共答对" + correctNumber + "道题,共20道题。")

    修改后代码:

    def question():
        num = 0
        global correctNumber  # 定义全局变量,统计答对的次数
        while num <20:
            generate=Expression() #定义对象
            expression = generate.expre()#调用generate()函数,生成运算式
            print(expression + "=")
            expression1 = make_Expression(expression)  # 将中缀表达式转换为后缀表达式
            result = make_Value(expression1)  # 计算后缀表达式的值
            userAnswer = input()  # 输入你的答案
            if '?' in userAnswer:
                userAnswer = userAnswer.replace('?', '')#str.replace(old,new,max)方法,把字符中的old替换成new,且替换不超过max次
            if (float(userAnswer) == float(result)):  # 判断用户结果是否和正确答案相等
                correctNumber += 1
                print("答对了,你真是个天才!")
            else:
                result = str(result)
                print('再想想吧,答案似乎是' + result + '喔!')
            num += 1
        correctNumber = str(correctNumber)
        print("你一共答对" + correctNumber + "道题,共20道题。")

    修改后截图:

    错误二:使用测试用例3
    判断用户答案和结果是否相等的时候出现错误:

     我们发现输入正确的答案,结果是错的,后来计算了多道题时发现,输入整数都是错误的,只有输入浮点数才能正确。

    原代码

    def question():
        num = 0
        global correctNumber  # 定义全局变量,统计答对的次数
        while num <20:
            generate=Expression() #定义对象
            expression = generate.expre()#调用generate()函数,生成运算式
            print(expression + "=")
            expression1 = make_Expression(expression)  # 将中缀表达式转换为后缀表达式
            result = make_Value(expression1)  # 计算后缀表达式的值
            userAnswer = input()  # 输入你的答案
            if '?' in userAnswer:
                userAnswer = userAnswer.replace('?', '')#str.replace(old,new,max)方法,把字符中的old替换成new,且替换不超过max次
            if (userAnswer==result):  # 判断用户结果是否和正确答案相等
                correctNumber += 1
                print("答对了,你真是个天才!")
            else:
                result = str(result)
                print('再想想吧,答案似乎是' + result + '喔!')
            num += 1
        correctNumber = str(correctNumber)
        print("你一共答对" + correctNumber + "道题,共20道题。")

    修改后:

    将判断结果是否相等部分进行了修改,将用户的输入转换为浮点数再进行比较
            if (float(userAnswer) == float(result)):  # 判断用户结果是否和正确答案相等
                correctNumber += 1
                print("答对了,你真是个天才!")
            else:
                result = str(result)
                print('再想想吧,答案似乎是' + result + '喔!')

    最终截图:

    将错误一二三完成修正后:最后终于全部通过了。三个测试通过的截图如下:

    表达式求值功能(使用测试用例1

    循环出题测试:(使用测试用例4

     规范化输出测试:(使用测试用例5

  • 相关阅读:
    ZOJ 3891 K-hash
    ZOJ 3890 Wumpus
    ZOJ 3888 Twelves Monkeys
    ZOJ 3885 The Exchange of Items
    HDU 3849 By Recognizing These Guys, We Find Social Networks Useful
    HDU 2242 考研路茫茫——空调教室
    BZOJ 3676: [Apio2014]回文串
    [转载]CAsyncSocket及CSocket注解
    WritePrivateProfileString()
    GetSystemMetrics()
  • 原文地址:https://www.cnblogs.com/summerkingy/p/11585536.html
Copyright © 2011-2022 走看看