Salatalık - Özellikler
Bir Featurebağımsız bir birim veya bir projenin işlevselliği olarak tanımlanabilir. Çok yaygın bir sosyal ağ sitesi örneğini ele alalım. Bu ürünün / projenin özelliği nasıl görünüyor? Birkaç temel özellik şu şekilde belirlenebilir:
Kullanıcıyı sosyal ağ sitesinden oluşturun ve kaldırın.
Sosyal ağ sitesi için kullanıcı oturum açma işlevi.
Sosyal paylaşım sitesinde fotoğraf veya video paylaşmak.
Bir arkadaşlık isteği gönderme.
Logout.
Şimdiye kadar, test edilen ürünün her bağımsız işlevinin Salatalık hakkında konuştuğumuzda bir özellik olarak adlandırılabileceği açıktır. Daha sonra test etmeye başladığınızda, test komut dosyalarını türetmeden önce test edilecek özellikleri belirlememiz en iyi uygulamadır.
Bir özellik genellikle o özellik için test edilecek senaryoların bir listesini içerir. Özellikleri, özellikleri ve test edilecek senaryolarla ilgili açıklamaları sakladığımız bir dosyaFeature File. Aşağıdaki bölümde özellik dosyaları hakkında daha fazlasını göreceğiz.
Kornişon turşusunda test edilen bir özelliği temsil eden anahtar kelime "Özellik" dir. Önerilen en iyi uygulama, özellik dosyasındaki özellik başlığının altına özelliğin küçük bir açıklamasını yazmaktır. Bu, iyi bir dokümantasyon ihtiyacını da karşılayacaktır.
Misal
Feature - Bir sosyal ağ sitesi için oturum açma işlevi.
Kullanıcı adı ve şifre doğruysa, kullanıcı sosyal ağ sitesine giriş yapabilmelidir.
Kullanıcı adı ve şifre yanlışsa kullanıcıya hata mesajı gösterilmelidir.
Kullanıcı adı ve şifre doğruysa, kullanıcı ana sayfaya yönlendirilmelidir.
Özellik Dosyaları
Salatalık testlerinin yazıldığı dosya şu adla bilinir: feature files. Test edilen her özellik için ayrı bir özellik dosyası olması tavsiye edilir. Özellik dosyasının uzantısının ".feature" olması gerekir.
Gerektiği kadar çok özellik dosyası oluşturulabilir. Organize bir yapıya sahip olmak için her özelliğin bir özellik dosyası olması gerekir.
Örneğin -
Sr.No | Özellik | Özellik Dosyası adı |
---|---|---|
1 | Kullanıcı Girişi | userLogin.feature |
2 | Gönderiyi Paylaşın | sharePost.feature |
3 | Hesap oluştur | createAccount.feature |
4 | Hesabı sil | deleteAccount.feature |
Özellik adı, özellik dosyası adı için kullanılacak adlandırma kuralı, kişinin seçimine bağlıdır. Hıyar'da isimler konusunda temel bir kural yoktur.
Basit bir özellik dosyası aşağıdaki anahtar sözcüklerden / bölümlerden oluşur -
Feature - Test edilen özelliğin adı.
Description (isteğe bağlı) - Test edilen özellik hakkında açıklama yapın.
Scenario - Test senaryosu nedir?
Given - Test adımları uygulanmadan önce ön koşul.
When - Bir sonraki adımı yürütmek için eşleşmesi gereken belirli koşul.
Then - NE ZAMAN'da belirtilen durum karşılanırsa ne olmalıdır.
Misal
Feature - Sosyal ağ sitesinde kullanıcı girişi.
Kullanıcı adı ve şifresi doğru olduğunda kullanıcı sosyal ağ sitesine giriş yapabilmelidir.
Kullanıcı adı ve şifre yanlış olduğunda kullanıcıya bir hata mesajı gösterilmelidir.
Kullanıcı adı ve şifre doğruysa kullanıcı ana sayfaya yönlendirilmelidir.
Outline - Bir sosyal ağ sitesi için oturum açma işlevi.
Verilen kullanıcı Facebook'a gider. Kullanıcı adını "<kullanıcı adı>" ve Parolayı "<parola>" olarak girdiğimde. Ardından, oturum açma başarısız olmalıdır.
| username | password |
| username1 | password1 |
* AND anahtar kelime, iki koşul arasındaki bağlantıyı göstermek için kullanılır. AND gibi diğer anahtar kelimelerle kullanılabilir GIVEN, WHEN ve THEN.
Özellik dosyasında yazılı mantık ayrıntısı yok.
Adım Tanımları
Özellik dosyamızı tanımlanan test senaryoları ile hazır hale getirdik. Ancak bu yapılan işin tamamı değildir. Salatalık, bir özellik dosyasında ana hatları verilen herhangi bir özel senaryo için hangi kod parçasının çalıştırılacağını gerçekten bilmiyor.
Bu, bir ara - Adım Tanımlama dosyası ihtiyacını çağırır. Adım tanımlama dosyası, özellik dosyasında tanımlanan senaryonun her adımı arasındaki eşleştirmeyi yürütülecek bir fonksiyon koduyla birlikte depolar.
Şimdi, Cucumber, özellik dosyasında bahsedilen senaryonun bir adımını yürüttüğünde, adım tanımlama dosyasını tarar ve hangi fonksiyonun çağrılacağını belirler.
Adım Tanım Dosyası Örneği
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$"
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then"^login should be unsuccessful$"
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
Dolayısıyla, her bir işlevle, her test adımında yürütmek istediğiniz kod ne olursa olsun (yani VERİLEN / SONRA / ZAMAN), Adım Tanımlama dosyası içine yazabilirsiniz. Adımların her biri için kodun / işlevin tanımlandığından emin olun.
Bu işlev, test adımlarımızı otomatikleştirmek için hem Java hem de Selenium komutlarını kullanabileceğimiz Java işlevleri olabilir.