0
나는이 같은 사용 사례에 대한 테스트를 만들기 위해 노력하고는 :는 QTEST는 : 하위 대화 상자와 대화 상자를 테스트
- 대화 상자가이 대화 상자에서 버튼을
- 클릭을 열려는 하위 대화 열립니다 하위 대화 상자에서 버튼을
- 클릭하면 그것을 어떤 조치가
내가 영장 할 수 있었다 닫힌 대화를 하위 후 대화 상자에서 수행
- 실행 테스트 "1"-> 출력이 "1"
- 데이터와 테스트 실행은 "1 2"-> 출력은 "1 2/2"실행
- 인 데이터가 "1 2 3"-> 출력은 "1 2 2 3 3 3"
- "1 2 3 4"-> 출력은 "1 2 2 3 3 4 4 4 4"데이터로 테스트 실행
어떻게 든 최종 동작 신호가 반복되는 것으로 보이지만 코드에 무엇이 잘못된 것인지 찾을 수 없었습니다. 여기에 문제가 재현 단순화 된 코드 예제입니다 :
테스트 케이스는
void QtBugIsolationTest::testCase1()
{
auto dialog = new MyDialog();
QTest::mouseClick(dialog->showSubDialogButton, Qt::LeftButton);
QTest::mouseClick(dialog->subDialog->button, Qt::LeftButton);
QTest::mouseClick(dialog->showSubDialogButton, Qt::LeftButton);
QTest::mouseClick(dialog->subDialog->button, Qt::LeftButton);
QTest::mouseClick(dialog->showSubDialogButton, Qt::LeftButton);
QTest::mouseClick(dialog->subDialog->button, Qt::LeftButton);
QVERIFY(true);
}
홈페이지 대화
MyDialog::MyDialog()
{
setGeometry(0, 0, 100, 100);
subDialog = new MySubDialog(this);
showSubDialogButton = new QPushButton(this);
connect(showSubDialogButton, SIGNAL(clicked()), this, SLOT(OnShowSub()));
}
MyDialog::~MyDialog()
{
delete showSubDialogButton;
}
void MyDialog::OnShowSub()
{
connect(subDialog, SIGNAL(accepted()), this, SLOT(OnCloseSub()));
subDialog->show();
}
void MyDialog::OnCloseSub()
{
std::cout << "Closed sub dialog" << std::endl;
subDialog->hide();
disconnect(subDialog);//, SIGNAL(accepted()));
}
하위 대화
MySubDialog::MySubDialog(QWidget* parent) : QDialog(parent)
{
setGeometry(0, 0, 100, 100);
button = new QPushButton(this);
connect(button, SIGNAL(clicked()), this, SLOT(OnPush()));
auto layout = new QHBoxLayout();
layout->addWidget(button);
setLayout(layout);
}
MySubDialog::~MySubDialog()
{
delete button;
}
void MySubDialog::OnPush()
{
std::cout << "Button Pushed" << std::endl;
accepted();
}
요청 된 경우 (그리고 StackOverflow에서 가능할 경우) 해당 클래스의 전체 QtCreator 프로젝트 또는 헤더 파일을 게시 할 수 있습니다.