• 20170928-2 单元测试,结对


    结对伙伴:苗威

    经过学习编写的单元测试代码:

    import unittest
    from f4 import *
    class TestMathFunc(unittest.TestCase):
        def test_f4(self):
            pass
        def test_f4_answer(self):
            print("_f4_answer函数单元测试开始:")
            _eq = input("输入一个四则运算:")
            _eq_ans = input("输入一个正确的答案:")
            self.assertEqual(_eq_ans ,f4()._f4_answer(eq = _eq))
            print("_f4_answer函数单元测试结束。")
            print("OK")
        def test_f4_input(self):
            print("_f4_input函数单元测试开始:")
            self.assertEqual(0,f4()._f4_input())
            print("_f4_input函数单元测试结束。")
            print("OK")
        def test_f4_integer_parser(self):
            print("_f4_integer_parser函数单元测试开始:")
            x = input("输入命令行参数:")
            self.assertEqual(0,f4()._f4_integer_parser(x))
            print("_f4_integer_parser函数单元测试结束。")
            print("OK")
    if __name__ ==  "__main__":
        unittest.main()

    运行结果如下:

    先写的程序后完成的单元测试,所以都是一次pass

    代码:

        def _f4_answer(self,eq):
            from fractions import Fraction as f
            _answer = f(eval(eq)).limit_denominator(1000)
            _answer = str(_answer)
            return(_answer)
        def _f4_input(self):
            try:
                _y = 0
                _n = 0
                for i in range(20):
                    _eq = f4()._f4()
                    print(_eq, "=")
                    _ans_right = f4()._f4_answer(eq = _eq)
                    _ans = input("?")
                    if _ans == _ans_right:
                        print("答对了,你真是个天才!")
                        _y = _y + 1
                    else:
                        print("你再想想吧,答案似乎是", _ans_right, "喔!")
                        _n = _n + 1
                print("你一共答对", _y, "道题,一共20道题。")
            except:
                print("输入有误")
            return (0)
        def _f4_integer_parser(self,x):
            _p = "请输入正整数。"
            try:
                x = int(x)
                if x >= 0:
                    for i in range(x):
                        _eq = f4()._f4()
                        _right = f4()._f4_answer(eq = _eq)
                        _eq = _eq + "="
                        print(_eq.ljust(40), _right)
                else:
                    print(_p)
            except:
                print(_p)
            return(0)

    体会:

    单元测试可以帮助编码的人减少bug,避免浪费时间,思路更加清晰。

  • 相关阅读:
    【BZOJ1858】序列操作(SCOI2010)-线段树
    【BZOJ1858】序列操作(SCOI2010)-线段树
    【SPOJ3267】D-query-莫队算法
    【BZOJ2038】小Z的袜子(2009国家集训队)-莫队算法
    【BZOJ2038】小Z的袜子(2009国家集训队)-莫队算法
    【HDU3966】Aragorn's Story-树链剖分或LCT维护路径
    BZOJ 4569 萌萌哒
    BZOJ 2460 元素
    BZOJ 2115 Xor
    BZOJ 2750 Road
  • 原文地址:https://www.cnblogs.com/songyuu/p/7648701.html
Copyright © 2020-2023  润新知