我想在我的项目中测试一个模块,但是我有一些问题。我不知道怎样才能在按下按钮后检查窗口是否正确打开。在
我让窗口选择AddingBookTypeWindow和AddSchoolBookWindow。 我想检查一下AddSchoolBookWindow在我点击selectBtn按钮后是否会打开。在
我当前的测试(我对最后一个字符串有问题,因为我不知道必须使用哪种方法):
@pytest.fixture
def open_window(qtbot):
def _press_button(window):
widget = window()
qtbot.addWidget(widget)
widget.show()
qtbot.wait_for_window_shown(widget)
sleep(3)
return widget
return _press_button
class TestSelectAddingBookTypeWindow:
def test_select_schoolbook(self, open_window, qtbot):
widget = open_window(SelectAddingBookTypeWindow)
qtbot.mouseClick(widget.schoolbookSelector, QtCore.Qt.LeftButton)
qtbot.mouseClick(widget.selectBtn, QtCore.Qt.LeftButton)
assert widget.close()
assert AddSchoolBookWindow.isActiveWindow()
我的课程: A、 选择AddingBookTypeWindow
^{pr2}$B.添加教科书窗口
class AddSchoolBookWindow(QDialog, Ui_AddSchoolbookWindow):
@logger.catch
def __init__(self):
super().__init__()
self.setupUi(self)
self.widgets = [
self.schoolbookAuthor, self.schoolbookTitle, self.schoolbookPublishHouse,
self.schoolbookPublishYear, self.schoolbookInvoiceNum, self.schoolbookInvoiceDate, self.schoolbookClass,
self.schoolbookCount, self.schoolbookPrice
]
self.schoolbookSaveBtn.clicked.connect(lambda _: self.save_book())
self.schoolbookClearBtn.clicked.connect(lambda _: Utils.clear_fields(self.widgets, self.schoolbookInvoiceDate))
self.schoolbookCancelBtn.clicked.connect(lambda _: self.close())
@logger.catch
def save_book(self):
field_names = Config.COLUMNS['SchoolBook']
user_data = list(map(lambda x: x.text(), self.widgets))
book_sum = Utils.calculate_book_sum(user_data)
user_data.append(str(book_sum))
book = dict(zip(field_names[1:], user_data))
db = DatabaseManager(Config.PATHES['TO_DATABASE']['PROD'])
model = Schoolbook('SchoolBook', db.connection)
model.insert_book(book)
logger.success(f'The {book} success add in the database')
model.model.select()
这只是完整代码的一小部分,但是完整代码不能解决这个问题。在
在您的例子中,问题是小部件不可访问,因为它是一个局部变量,我也怀疑窗口是否会显示为稍后应该删除的窗口,因此要访问它,我将创建一个属性:
然后在测试中,你应该验证所选的窗口不是None,它的基类是AddSchoolBookWindow,也要避免使用时间。睡觉(),在测试的情况下使用QTest.qWait()
^{pr2}$相关问题 更多 >
编程相关推荐