Android. Программирование для профессионалов. 4-е издание



Download 21,53 Mb.
Pdf ko'rish
bet318/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   314   315   316   317   318   319   320   321   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner


20sp
3dp
name="AppTheme"
parent="
Theme.AppCompat.Light.DarkActionBar
">
name="colorPrimary">@color/colorPrimary
name="colorPrimaryDark">@color/colorPrimaryDark

name="colorAccent">@color/colorAccent
Листинг 20.11. Создание имитации BeatBox
(SoundViewModelTest.kt)
class SoundViewModelTest {
private lateinit var beatBox: BeatBox
private lateinit var sound: Sound
private 
lateinit 
var 
subject:
SoundViewModel
@Before
fun setUp() {
beatBox = mock(BeatBox::class.java)
sound = Sound("assetPath")
subject = SoundViewModel()
subject.sound = sound


}
...
}
Функция 
mock(Class)
должна быть импортирована, как и
ссылка на класс. Эта функция автоматически создаст для вас
имитацию 
BeatBox
. Довольно хитро.
Когда имитация 
BeatBox
готова, вы можете закончить
написание теста, чтобы убедиться, что вызвана функция
воспроизведения. Mockito может помочь вам в этой сложной
задаче. Все объекты Mockito отслеживают, какие из их функций
вызывались и какие параметры передавались при каждом
вызове. Функция 
verify(Object)
объекта Mockito проверяет,
вызывались ли эти функции так, как вы ожидали.
Вызовите функцию 
verify(Object)
, чтобы убедиться в
том, 
что 
onButtonClicked()
вызывает
BeatBox.play(Sound)
с объектом 
Sound
, связанным с
SoundViewModel
.
Листинг 20.12. Проверка вызова BeatBox.play(Sound)
(SoundViewModelTest.kt)
class SoundViewModelTest {
...
@Test
fun callsBeatBoxPlayOnButtonClicked() {
subject.onButtonClicked()
verify(beatBox).play(sound)
}
}


Функция 
verify(Object)
использует динамический
интерфейс и включает следующий код:
verify(beatBox)
beatBox.play(sound)
Вызов 
verify(beatBox)
означает: «Я хочу проверить, что
для 
beatBox
была вызвана функция». Следующий вызов
функции интерпретируется так: «Проверить, что эта функция
был вызвана именно так». Таким образом, вызов 
verify(...)
означает: «Проверить, что функция 
play(...)
была вызвана
для 
beatBox
с передачей 
sound
в качестве параметра».
Конечно, ничего подобного не происходило. Код
SoundViewModel.onButton 
Clicked()
пуст, так что функция
beatBox.play(Sound)
не вызывалась. А следовательно, тест
не пройдет. При опережающем написании тестов это хорошо —
если тест проходит с первого раза, то он ничего не проверяет.
Запустите тест и убедитесь в том, что он не проходит.
Используйте действия, описанные выше, или нажмите
сочетание клавиш 
(

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   314   315   316   317   318   319   320   321   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish