• 软件工程(2019)第二次作业


    (一)选择开发工具

      本次团队编程经过讨论我准备使用Eclipse作为开发工具,由于本机已经安装了Eclipse所以下面将Eclipse的界面截图如下:
    Eclipse主界面截图

    (二)练习自动单元测试技术

      由于本机中已经安装了Python环境并已经安装好了Python的单元测试Unittest,所以这次自动单元测试技术练习使用了Python完成。以下就是练习代码以及测试结果:
      Unittest是基于流行的Java测试框架JUnit的一种Python测试框架,相比于Python之前的单元测试框架Doctest来讲,Unittest更灵活,更强大;可以以结构化方式编写庞大而详尽的测试集。
      下面是一个程序模块my_math的测试实例,我们使用Unittest中的TestCase类编写y一个测试。(my_math模块中包含了一个计算乘积的函数product)

    import unittest, my_math
    
    class ProductTestCase(unittest.TestCase):
        def test_integers(self):
            for x in range(-10, 10):
                for y in range(-10, 10):
                    p = my_math.product(x, y)
                    self.assertEqual(p, x * y, 'Integer multiplication failed')
    
        def test_floats(self):
            for x in range(-10, 10):
                for y in range(-10, 10):
                    x = x / 10
                    y = y / 10
                    p = my_math.product(x, y)
                    self.assertEqual(p, x * y, 'Float multiplication failed')
    
    if __name__=='__main__': unittest.main()
    
    

      函数unittest.main负责运行测试,实例化所有的TestCase子类,并运行所有名称以test打头的方法。
      my_math内部的代码如下:

    def product(x, y):
        return x * y
    

      则输出如下:
    成功1
      当然,完全正确的结果显然没有什么趣味性,下面我对product函数进行一些修改:

    def product(x, y):
        if x == 3 and y == 7:
            return 'An insidious bug has surfaced!'
        else:
            return x * y
    

      则输出如下,可以看到两个测试结果只有一个通过了:
    成功2

  • 相关阅读:
    Day18-lvs
    mysql日志
    【杂文】我们都有光明的前途(回忆录)
    【杂文】银色的 NOI2020(退役记)
    【杂文】SCOI2020 游记
    【学习笔记】字符串—广义后缀自动机
    【学习笔记】数论、数学—常见定理、结论、性质汇总
    【杂文】随心一记
    【杂文】CSP2019 蒟蒻AFO(假)记
    【模板整合计划】目录
  • 原文地址:https://www.cnblogs.com/ulyssesgao/p/10692644.html
Copyright © 2020-2023  润新知