【发布时间】:2019-06-05 11:54:40
【问题描述】:
我有一个名为 CommonSteps.java 的类,其中包含以下方法:
@Then("^the following error is displayed: \"([^\"]*)\"$")
public void the_error_is_displayed(String message) throws Exception {
// although using the login page to retrieve - these will return if visible from any page!
message = errorHelper.generateErrorMessage(message);
assertThat(runtimeState.loginPage.getErrors(), hasItem(containsString(message)));
}
我想在断言中将此方法调用到另一个类中。到目前为止,我已经编写了以下代码:
@Then("^an upload invoice error message is displayed$")
public void an_upload_invoice_error_message_is_displayed() throws Throwable {
List<Map<String, Object>> invoiceDocuments = dbHelperInvoices.getInvoiceDocumentsFilePath(testData.getInt("orderRef"));
if (invoiceDocuments.get(0).get("jobSheetFilePath") == null && invoiceDocuments.get(0).get("invoiceFilePath") != null) {
assertTrue("Unexpected error message displayed", commonSteps.the_error_is_displayed(message));
我的问题是我应该用什么来代替消息变量?或者我需要添加什么才能使消息变量起作用?由于此代码引发错误。希望这是足够的信息。如果这是一个愚蠢的问题,我对编码很抱歉。
编辑:我之前的代码是
public void an_upload_invoice_error_message_is_displayed() throws Throwable {
List<Map<String, Object>> invoiceDocuments = dbHelperInvoices.getInvoiceDocumentsFilePath(testData.getInt("orderRef"));
if (invoiceDocuments.get(0).get("jobSheetFilePath") == null && invoiceDocuments.get(0).get("invoiceFilePath") != null) {
assertTrue("Unexpected error message displayed", runtimeState.uploadInvoiceDocumentPage.isUploadJobSheetErrorDisplayed());
outputHelper.takeScreenshot();
} else if (invoiceDocuments.get(0).get("invoiceFilePath") == null && invoiceDocuments.get(0).get("jobSheetFilePath") != null) {
assertTrue("Unexpected error message displayed", runtimeState.uploadInvoiceDocumentPage.isUploadInvoiceErrorDisplayed());
outputHelper.takeScreenshot();
} else if (invoiceDocuments.get(0).get("invoiceFilePath") == null && invoiceDocuments.get(0).get("jobSheetFilePath") == null){
assertTrue("Unexpected error message displayed", runtimeState.uploadInvoiceDocumentsPage.isUploadInvoiceErrorDisplayed());
assertTrue("Unexpected error message displayed", runtimeState.uploadInvoiceDocumentsPage.isUploadJobsheetErrorDisplayed());
outputHelper.takeScreenshot();
}
}
但是,我被告知要更改代码以从上面的 CommonSteps.java 调用方法
【问题讨论】: