3_lx 2022-06-02 10:38 采纳率: 75%
浏览 11

关于unittest单元测试问题

想使用unittest对logic()函数进行测试,谢谢解答

import sys
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QPushButton, QLineEdit
from Caculator.caculator_ import Calculator, Fail


class Login(QWidget):
    def __init__(self):
        super(Login, self).__init__()
        self.person = "admin"
        self.secret = "123456"
        self.calculator = Calculator()
        self.fail = Fail()

        self.resize(600, 400)
        self.setWindowTitle("计算器登陆界面")

        self.user = QLabel(self)
        self.user.setText("用户名:")
        self.user.move(100, 150)

        self.password = QLabel(self)
        self.password.setText("密码:")
        self.password.move(100, 220)

        self.login = QPushButton(self)
        self.login.setText("登录")
        self.login.clicked.connect(self.handle)
        self.login.resize(70, 40)
        self.login.move(190, 260)

        self.exit = QPushButton(self)
        self.exit.setText("退出")
        self.exit.clicked.connect(self.quit)
        self.exit.resize(70, 40)
        self.exit.move(300, 260)

        self.username = QLineEdit(self)
        self.username.resize(300, 30)
        self.username.move(170, 145)

        self.pwd = QLineEdit(self)
        self.pwd.resize(300, 30)
        self.pwd.move(150, 215)

    def logic(self):
        if self.username.text() == self.person and self.pwd.text() == self.secret:
            return 200
        else:
            return 400

    def handle(self):
        if self.logic() == 200:
            self.calculator.show()

    def quit(self):
        if self.logic() == 400:
            sys.exit(app.exec_())


if __name__ == "__main__":
    app = QApplication(sys.argv)
    user = Login()
    user.show()
    sys.exit(app.exec_())

  • 写回答

1条回答 默认 最新

  • 於黾 2022-06-02 10:52
    关注

    想使用unittest,你需要先import unittest
    然后login继承unittest.TestCase
    然后logic改名字,前面要加上test
    最后要执行unittest.main()
    这样不仅麻烦,而且测试过程和你实际想要的过程并不一致
    其实你可以换个思路,不要直接对logic进行测试
    而是把你
    if __name__ == "__main__":
    里面的代码封装一下,加入测试

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月2日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据