Qual é a finalidade das anotações @SmallTest, @MediumTest e @LargeTest no Android?
99
Eu sou novo no Android e vi código de exemplo usando essas anotações. Por exemplo:
@SmallTestpublicvoid testStuff(){TouchUtils.tapView(this, anEditTextView);
sendKeys("H E L P SPACE M E PERIOD");
assertEquals("help me.", anEditTextView.getText().toString());}
No contexto do código acima, ele realmente FAZ alguma coisa, exceto deixar uma nota para outros desenvolvedores? Isso impõe alguma coisa? Existem ferramentas que utilizam esta anotação? Qual é o seu propósito no desenvolvimento do Android?
Você pode executar um grupo de testes anotados com anotações específicas.
OK, resumindo, posso executar apenas o conjunto de testes @SmallTest com adb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner; obrigado
kosiara - Bartosz Kosarzycki
Como especificamos a anotação em um comando gradle? Por exemplo, algo como:./gradlew connectedDebugAndroidTest -size MediumTest
Entendo (e lembro de ter lido aquele artigo no mês passado). Mas, no contexto do código acima, ele realmente FAZ alguma coisa, exceto deixar uma nota para outros desenvolvedores? Isso impõe alguma coisa? Existem ferramentas que utilizam esta anotação? Qual é o seu propósito no desenvolvimento do Android?
Eric Palakovich Carr
3
@Eric O Android TestRunner permite que você especifique o tamanho dos testes a serem executados.
@NeonWarge use import android.support.test.filters. [Pequeno] Teste;
Alexander Sidikov Pfeif
1
Você também pode anotar testes de unidade POJO com @Category(MediumTest.class)ou @Category(LargeTest.class), etc., definindo suas próprias categorias - consulte o repositório de categorias de teste para um exemplo
adb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner
; obrigado./gradlew connectedDebugAndroidTest -size MediumTest
Esta postagem do blog explica isso melhor. Basicamente, é o seguinte:
De acordo com o blog de desenvolvedores Android , um pequeno teste deve levar <100 ms, um teste médio <2s e um teste grande <120s.
Consulte esta página (procure por "@SmallTest") para saber como especificar quais testes devem ser executados.
fonte
Você também pode anotar testes de unidade POJO com
@Category(MediumTest.class)
ou@Category(LargeTest.class)
, etc., definindo suas próprias categorias - consulte o repositório de categorias de teste para um exemplofonte