2015-06-02 56 views
1

自動生成的名稱兩次,第一次的Watir Rspec的紅寶石:老/前值比較新/編輯值

$name = generate_name 
    self.name = $name 

生產:$name is "Abc"

然後編輯$name是 「XYZ」。這會導致舊名稱/舊名稱不再可用/保存在應用程序中,並被新名稱/編輯名稱覆蓋。

我現在必須比較同一個變量$ name的兩個值以確保名稱被編輯。

using expect($name).to_not eq($old_name) 

我不知道如何來上一首/舊名稱保存到另一個變量$old_name覆蓋它之前?

+1

究竟爲什麼你使用全局變量? (用$開始一個變量名使其成爲Ruby中的全局變量)。使用['let'代替](https://www.relishapp.com/rspec/rspec-core/v/3-2/docs/helper-methods/let-and-let)。全球化是邪惡的。 – max

回答

0

在將$name更改爲「Xyz」或測試相等性之前,您需要將$old_name設置爲等於$name

事情是這樣的:

$name = generate_name 
self.name = $name 
$old_name = self.name 

$name = Xyz 
self.name = $name 

using expect($name).to_not eq($old_name) 
+0

實際上相同的生成名稱方法會執行兩次以創建並編輯名稱,因此如果在編輯過程中再次執行$ old_name = self.name,它也會覆蓋它的值我也必須運行相同的方法兩次,但已分配$ old_name僅限一次。 – btest

+0

它像高清create_name $ NAME = generate_name self.name = $名稱 $ OLD_NAME = self.name $ NAME = generate_name self.name = $名結束......要指定價值$ OLD_NAME在全局方法外的generate_name方法 – btest