第三周作业04

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

结对伙伴:位军营

使用语言:Python

集成环境:VScoding

测试框架:UnitTest

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

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

功能一测试用例:

编号 测试用例 预期结果
1 输入文件名 输出算数表达式
2 输入正确结果 答对啦你真是个天才
3 输入错误结果 再想想吧答案可能是X

测试截图:

第三周作业04_第1张图片

UnitTest代码:

import unittest
from f4_1 import Get_Problem,main
class UnitTest(unittest.TestCase):
    #不带括号的求值测试
    def test_f4_1(self):
        result = Get_Problem()
        print(result)
        get_input = input()
        get_input = int(get_input)
        self.assertEqual(result,get_input)
        print("通过测试")

if __name__=='__main__':
    unittest.main()

UnitTest测试截图:

第三周作业04_第2张图片

 

功能二测试用例:

编号 测试用例 预期结果
1 输入文件名 输出带有括号的表达式
2 输入正确结果 答对啦你真是个天才
3 输入错误结果 再想想吧答案可能是X

测试截图:

第三周作业04_第3张图片

 

功能三测试用例:

编号 测试用例 预期结果
1 在f4 -c 后输入  a 请输入正整数
2 在f4 -c 后输入  -1 请输入正整数
3 在f4 -c 后输入  3 输出3个表达式

功能三测试截图:

第三周作业04_第4张图片

功能三核心代码:

dic ={
        1: '('+str(a)+opration1+str(b)+')'+opration2+str(c)+opration3+str(d),
        2: str(a)+opration1+str(b)+opration2+'('+str(c)+opration3+str(d)+')',
        3: str(a)+opration1+'('+str(b)+opration2+str(c)+')'+opration3+str(d),
        4: '('+str(a)+opration1+str(b)+opration2+str(c)+')'+opration3+str(d),
        5: str(a)+opration1+'('+str(b)+opration2+str(c)+opration3+str(d)+')',
        6: '('+str(a)+opration1+str(b)+')'+opration2+'('+str(c)+opration3+str(d)+')',
        7: '('+'('+str(a)+opration1+str(b)+')'+opration2+str(c)+')'+opration3+str(d),
        8: '('+str(a)+opration1+'('+str(b)+opration2+str(c)+')'+')'+opration3+str(d),
        9: str(a)+opration1+'('+'('+str(b)+opration2+str(c)+')'+opration3+str(d)+')',
        10: str(a)+opration1+'('+str(b)+opration2+'('+str(c)+opration3+str(d)+')'+')'}
def main():
    if (sys.argv[1]=='-c'):
        
        list1 = []
        strnumofproblem = sys.argv[2]
        if strnumofproblem.isdecimal() == False:
            print("题目数量必须是 正整数。")
        else:
            intnumofproblem = int(strnumofproblem)
            for _ in range(intnumofproblem):       #避免生成重复式子
                strnum = Get_Problem()
                if strnum in list1:
                    intnumofproblem += 1
                elif Get_Result(strnum) == "worngproblem":
                    intnumofproblem += 1
                else:
                    list1.append(strnum)
                    print("%-30s %g"% (strnum+'=',Get_Result(strnum)))

总体收获:

在本次作业中学会了如何对代码进行单元测试,也了解到了在写代码前先写测试用例的重要性,希望在以后的作业中继续学习相关内容。

 

你可能感兴趣的:(第三周作业04)