Android学习-第50天
今天的任务为实现测试类以及编写测试方法,代码如下:
SoundViewModelTest.java:
package com.bignerdranch.android.beatbox; import org.junit.Before; import org.junit.Test; import static org.hamcrest.core.Is.is; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class SoundViewModelTest { private BeatBox mBeatBox; private Sound mSound; private SoundViewModel mSubject; @Before public void setUp() throws Exception { mBeatBox=mock(BeatBox.class); mSound=new Sound("assetPath"); mSubject=new SoundViewModel(mBeatBox); mSubject.setSound(mSound); } @Test public void exposesSoundNameAsTitle(){ assertThat(mSubject.getTitle(),is(mSound.getName())); } @Test public void callsBeatBoxPlayOnButtonClicked(){ mSubject.onButtonClicked(); verify(mBeatBox).play(mSound); } }
SoundViewModel.java:
package com.bignerdranch.android.beatbox; import android.databinding.BaseObservable; import android.databinding.Bindable; public class SoundViewModel extends BaseObservable{ private Sound mSound; private BeatBox mBeatBox; public SoundViewModel(BeatBox beatBox){ mBeatBox=beatBox; } @Bindable public String getTitle(){ return mSound.getName(); } public Sound getSound() { return mSound; } public void setSound(Sound sound){ mSound=sound; notifyChange(); } public void onButtonClicked() { mBeatBox.play(mSound); } }
结果如下: