首页 技术 正文
技术 2022年11月18日
0 收藏 386 点赞 3,451 浏览 2044 个字

1.第一次接触到大型软件系统的开发,现在我们使用的是 python + flask +vue.js ,数据库:postgresql

2. 不要在自己不懂的情况下复制代码,每次分析一段代码的时候,就跟以前做数学题一样,做多了真的就熟悉了。

3.一份代码总是需要不断的修补的,所以需要TDD也就是Test Driven Development。 当重要的代码输出的东西都受到检验,代码也有了足够的测试作为后盾时,才能放心的去改动代码,从长远的角度看,TDD 可以节约更多的开发时间以及保证更好的代码质量。

TDD:  进行编程时先把测试部分写好,当发现不能通过时,再进行编程以使测试通过。然后在这基础上适当地调整测试代码以实现更多功能,最后再编写代码使之实现。

入职这一段时间的总结,Don't Repeat Yourself. 

单元测试: python unittest

“测试”指的是通过编写可以调用的代码(独立于你实际应用程序的代码)来帮助你确定程序中是否有错误,

  (1)为什么要测试?

  • 测试可以保证你的代码在一系列给定条件下正常工作
  • 测试能够确保对代码的改动不会破坏现有的功能
  • 测试迫使人们在不寻常条件的情况下思考代码,这可能会揭示出逻辑错误
  • 良好的测试要求模块化,解耦代码,这是一个良好的系统设计的标志

  (2)测试什么?

  • 测试相等性:最常用的断言是测试相等性,(断言实际值是否等于预期值)如果断言失败,开发者通常希望看到实际错误值。

            assert_equal(actual, expected_items)
    eq_(actual.get('id'), expected_items.get('id'))
  • 测试异常:测试经常希望检查在某个环境中是否出现异常。如果期待的异常没有抛出,测试将失败。
        def test_if_imoport_check_works(self):  #测试上传文件成功
    _url = '/' # 测试的接口
    _dir = './' #准备好的测试文件(json) def pass_extensions(_file):
    filename, file_extension = os.path.splitext(_file)
    if file_extension in ['.xlsx' '.cvs']:
    data = {'file': open(os.path.join(root, file), 'rb')}
    response = self.client.post(_url, data=data)
    actual_data = json.loads(response.data) assert_equal(response.status_code, 200)
    assert_greater(len(actual_data), 0)
    assert_greater(len(actual_data.get('file')), 0)
    assert_is_none(actual_data.get('errors')) # 断言不会抛出错误 for root, dirs, files in os.walk(_dir):
    [pass_extensions(file) for file in files]

      

  • 测试实际值不为空。
        def test_should_find_shipment_service(self):
    # 验证物流存在
    with open('./mocks/shipment-services.json', 'r') as shipments: #获取准备好的物流信息
    # python open方法
    data = json.load(shipments)
    self.assertIsNotNone(data)
    #判定 data不为空
    actual = ShipmentService.query.get(random.randint(1, 5)) def _assert_shipment_service(expected):
    self.assertEqual(actual, expected)
    self.assertIsNotNone(actual)
    [_assert_shipment_service(actual) for actual in data]
    # 通过for 循环遍历出data的值 assert_greater(actual.get('id'), 0)
    assert_greater(actual.get('external_id'), 0)
    assert_greater(actual.get('name'), 0) #判定 物流存在

      

4.代码调试

当代码出错时,在程序必要的地方加设断点,当程序运行到该行代码的时候,Pycharm会将程序暂时挂起,开始对程序的运行状态进行分析。

  (1)Debugger窗口分为三个可见区域:FramesVariables, 和 Watches。这些窗口列出了当前的框架、运行的进程,方便用户查看程序空间中变量的状态等。在Watches 中添加要查看的变量。对比错误信息。

  (2)Console窗口显示当前的控制台输出信息。

5. 测试代码粒度

尽可能的保证测试代码覆盖到最多的问题。

6. vagrant 的入门使用。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,990
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,504
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,348
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,133
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,765
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,843