Ticaret Federasyonu'nun modüler yaklaşımının temelinde opsiyon kullanımı yer alır. Özellikle, seçenekler
uygulama geliştiricisinin, Entegratörün ve Test Çalıştırıcısının herhangi bir çaba gerekmeden birlikte çalışabileceği
ve birbirlerinin çalışmasını
kopyalamak zorunda kalıyor. Basitçe ifade etmek gerekirse, seçenek işlemeyi uygulamamız,
Geliştirici, bir Java sınıfı üyesini yapılandırılabilir olarak işaretlemelidir. Bu noktada, söz konusu üyenin değeri
Entegre edilebilir veya geçersiz kılınabilir. Ayrıca,
test etmek için kullanılır. Bu mekanizma tüm Java yerleşik türleri için olduğu gibi
Yerleşik türlerin Map
veya Collection
'ları.
Not: Seçenek işleme mekanizması yalnızca Test Yaşam Döngüsü'ne dahil edilen arayüzler ve yalnızca söz konusu sınıf yaşam döngüsü makinesi tarafından tespit edilir.
Geliştirici
Başlangıç olarak geliştirici, bir üyeyi
@Option
ek açıklaması. .
name
ve description
değerlerini (en azından) belirtirler.
Bu Seçenek ile ilişkili bağımsız değişken adını ve
komut --help
veya --help-all
ile çalıştırıldığında TF konsolunda çalışır.
Örneğin, telefon araması üreten ve kullanıma sunmak için ve ardından her numaradan bir dizi DTMF tonu almayı bekler. bağlanır.
public class PhoneCallFuncTest extends IRemoteTest { @Option(name = "timeout", description = "How long to wait for connection, in millis") private long mWaitTime = 30 * 1000; // 30 seconds @Option(name = "call", description = "Key: Phone number to attempt. " + "Value: DTMF to expect. May be repeated.") private Map<String, String> mCalls = new HashMap<String, String>; public PhoneCallFuncTest() { mCalls.add("123-456-7890", "01134"); // default }
Geliştirici'nin bu SDK'ya ilişkin iki yapılandırma noktası oluşturması için gereken tüm budur
testi. Sonrasında devre dışı bırakıp mWaitTime
ve mCalls
uygulamalarını normal şekilde kullanabilirler.
ancak yapılandırılabilir olduklarına çok dikkat etmeyin. Çünkü
@Option
alanları, sınıf örneklendirildikten sonra, ancak
run
yöntemi çağrılır. Bu yöntem, uygulayıcıların
veya bir tür filtre uygulama işlemi (örneğin, Map
ve Collection
)
Aksi takdirde yalnızca sona eren kısımlar olur.
Entegre eden
Entegratör, XML'de yazılan Yapılandırmalar dünyasında çalışır. Yapılandırma biçimi
Entegratörün herhangi bir @Option
alanı için değer belirlemesine (veya eklemesine) olanak tanır. Örneğin,
Entegratörün, varsayılan sayıyı çağıran bir düşük gecikme testi de tanımlamak istediğini varsayalım.
, çeşitli numaraları çağrıştıran uzun süreli bir test olarak adlandırılır. Bir iki konfigürasyon çifti oluşturabilir
aşağıdaki gibi görünebilir:
<?xml version="1.0" encoding="utf-8"?> <configuration description="low-latency default test; low-latency.xml"> <test class="com.example.PhoneCallFuncTest"> <option name="timeout" value="5000" /> </test> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration description="call a bunch of numbers; many-numbers.xml"> <test class="com.example.PhoneCallFuncTest"> <option name="call" key="111-111-1111" value="#*#*TEST1*#*#" /> <option name="call" key="222-222-2222" value="#*#*TEST2*#*#" /> <!-- ... --> </test> </configuration>
Test Çalıştırıcı
Test Çalıştırıcı, bu yapılandırma noktalarına Ticaret Federasyonu konsolu aracılığıyla da erişebilir.
Her şeyden önce, bir komut (yani bir yapılandırma ve tüm bağımsız değişkenleri)
run command <name>
talimatı (veya kısaca run <name>
).
Bunun yanı sıra, komutun parçası olan herhangi bir bağımsız değişken listesini de belirtebilir.
her yapılandırmada Yaşam Döngüsü Nesneleri tarafından belirtilen alanlara ekleyin.
many-numbers
telefon numarasıyla düşük gecikme testi yapmak için Test Çalıştırıcısı
yürütülebilir:
tf> run low-latency.xml --call 111-111-1111 #*#*TEST1*#*# --call 222-222-2222 #*#*TEST2*#*#
Alternatif olarak, Test Çalıştırıcı ters yönde benzer bir etki elde etmek için bekleme süresini kısaltabilir
many-numbers
testi için:
tf> run many-numbers.xml --timeout 5000
Seçenek Sıralama
Temel uygulamanın temelindeki call
seçeneğinin bir Map
olduğunu fark edebilirsiniz.
Bu nedenle, komut satırında --call
tekrarlandıktan sonra hepsi depolanır.
long
temel uygulamasına sahip timeout
seçeneği,
yalnızca tek bir değer depolayabilir. Bu nedenle, yalnızca belirtilen son değer saklanır.
--timeout 5 --timeout 10
sonucu timeout
içinde 10 bulunur.
Temel uygulama olarak List
veya Collection
olması durumunda
tüm değerler, komut satırında belirtilen sırayla depolanır.
Boole Seçenekleri
Boole temel türünün seçenekleri,true
seçenek adına (örneğin, --[option-name]
) ve şu seçenek kullanılarak false
olarak ayarlanabilir:
--no-[option-name]
söz dizimi.