public void setDeviceColor(int deviceColor) {
if (deviceColor == 0) {
deviceColor = ColorUtil.getColorFromConte(mContext,R.color.color_1);
}
mDeviceColor = deviceColor;
notifyPropertyChanged(BR.deviceColor);
}
如何在mockito中测试。我无法做到
答案 0 :(得分:0)
如果你想测试一个有参数的方法,那么你只需要调用那个方法&然后验证状态&您的方法可能更改的类的值。 例如:对于名为TestClass的类,您的情况看起来像
@Mock
TestClass mockedTestclass;
@Test
public void testDeviceColor(){
int someDeviceColor = 123;
//invoke
mockedTestclass.setDeviceColor(someDeviceColor);
verify(mockedTestclass).notifyPropertyChanged(BR.deviceColor);
........
//other verifications
}
如果要测试具有带参数的构造函数的类,则可以使用JUnit轻松完成。为此,您必须使用Parameterized.class运行器运行,并使用@Paramters注释在公共静态方法中提及参数。 一个粗略的例子是:
@RunWith(Parameterized.class)
class SomeTestClass{
@Mock
SomeTestClass mSomeTestClassInstance;
@Parameters
public static Object provideParameters() {
Object[] objects = new Object[]{
0,
0,
2
};
return objects;
}
public SomeTestClass(Object argument1){
mArgument1 = argument1;
}
@Test
public void testSomeMethod{
Object returnValue = mSomeTestClassInstance.testSomeMethod(mArgument1);
assertequals(mArgument1,returnValue)
}
}