我无法为我的自定义视图创建单元测试。我尝试添加一个属性并测试它是否我的自定义视图类正确。
这是我的测试的样子:
@RunWith(AndroidJUnit4.class)
@SmallTest
public class BaseRatingBarMinRatingTest {
private Context mContext;
@Before
public void setUp(){
mContext = InstrumentationRegistry.getTargetContext();
}
@Test
public void constructor_should_setMinRating_when_attriSetHasOne() throws Exception{
// 1. ARRANGE DATA
float minRating = 2.5f;
AttributeSet as = mock(AttributeSet.class);
when(as.getAttributeFloatValue(eq(R.styleable.BaseRatingBar_srb_minRating), anyFloat())).thenReturn(minRating);
// 2. ACT
BaseRatingBar brb = new BaseRatingBar(mContext, as);
// 3. ASSERT
assertThat(brb.getMinRating(), is(minRating));
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
哪个得到这个异常:
java.lang.ClassCastException: android.util.AttributeSet$MockitoMock$1142631110 cannot be cast to android.content.res.XmlBlock$Parser
Run Code Online (Sandbox Code Playgroud)
我尝试像本文那样模拟 TypeArray ,但我的观点将模拟的上下文视为 null。
有没有什么好方法可以为自定义视图创建测试用例?
我不是一个以英语为母语的用户,而且我是一个 Python 初学者。请原谅任何语法错误。
我在将一个简单的 Flask 项目推送到 Heroku 时遇到问题。
首先,我的requirements.txt如下所示:
click==6.7
Flask==0.12.2
gunicorn==19.7.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2
Run Code Online (Sandbox Code Playgroud)
但是,Heroku 返回错误代码
click==6.7
Flask==0.12.2
gunicorn==19.7.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2
Run Code Online (Sandbox Code Playgroud)
我已在 venv 和全局环境中成功运行该项目,并./venv/bin/pip freeze在 venv 激活和停用模式下多次运行该命令。./venv/bin/pip -r install requirements.txt在新的venv中可以正常工作。
我不确定我哪一步做错了。任何建议都会有所帮助。
谢谢。