一步

2017-04-05 77 views
0

我正在寫一個測試的黃瓜,我拿出一些困難,返回的Java存儲黃瓜值:一步

我有創造的DTO和使用保存客戶端返回的DTO再回來,我會需要將其保存了一步使用返回的dto進行其他步驟,但不知道如何製作它。

這裏是它的外觀在代碼:

commonExpenseCreationSteps.java

@Given("^new \"([^\"]*)\" expense with type \"([^"]*)\"$") 
public ExpenseDTO newExpense(String description, String expenseType) throws Throwable { 
    ExpenseDTO expenseDTO = new ExpenseDTO(); 
    expenseDTO.setDefaultPurpose(description); 
    expenseDTO.setExpenseType(expenseType); 
    return expenseSaveClient.save(expenseDTO); 
} 

expenseTransactionsSendSteps.java

@Given("^send expense for Approval$") 
public void sendExpenseForApproval() throws InterruptedException { 
    expenseTransactionSendClient.sendToApproval(expenseDTO); 
} 

怎麼會是能夠利用一個返回值店在這種情況下,我會返回,在另一箇中使用它ExpenseDTO在newExpense方法中,但我需要在sendExpenseForApproval中使用它,但不知道該怎麼做!?

+0

http://stackoverflow.com/questions/34449948/how-to-pass-variable-values-between-steps-in-cucumber-java 檢查了這一點 –

回答

0

在您的膠水代碼之外創建expenseDTO對象,可能在您的stepdef類構造函數中。

ExpenseDTO expenseDTO = new ExpenseDTO(); 
0

在同一個類中的步驟之間共享狀態的方法是使用實​​例變量。在一個步驟中設置該值,並在稍後的步驟中使用該值。

在兩個或更多步驟類的步驟之間共享狀態的方法是使用依賴注入。

我寫了一個blog post,描述瞭如何使用PicoContainer完成它。