Java 如何在Robolectric中测试不支持的视图?
因此,我尝试使用Robolectric来验证单击按钮将启动服务是否正确启动。但是,由于我使用的是Java 如何在Robolectric中测试不支持的视图?,java,android,unit-testing,robolectric,google-signin,Java,Android,Unit Testing,Robolectric,Google Signin,因此,我尝试使用Robolectric来验证单击按钮将启动服务是否正确启动。但是,由于我使用的是com.google.android.gms.common包中的自定义视图,因此似乎所有onclick侦听器都没有正确绑定到登录按钮。以下是我的代码: TestLoginActivity.java: @RunWith(RobolectricGradleTestRunner.class) @Config(constants = BuildConfig.class, sdk = Build.VERSIO
com.google.android.gms.common
包中的自定义视图,因此似乎所有onclick侦听器都没有正确绑定到登录按钮。以下是我的代码:
TestLoginActivity.java:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
public class TestLoginActivity {
private LoginActivity mActivity;
@Before
public void setup() {
mActivity = Robolectric.buildActivity(LoginActivity.class)
.create()
.visible()
.get();
}
@Test
public void testRegistrationServiceStarted() {
SignInButton signIn = (SignInButton) mActivity.findViewById(R.id.signup);
assertTrue(signIn != null);
assertTrue(signIn.hasOnClickListeners());
signIn.performClick();
Intent expectedGcm = new Intent(mActivity, RegistrationIntentService.class);
Intent actual = Shadows.shadowOf(mActivity).getNextStartedService();
assertEquals(expectedGcm, actual);
}
}
LoginActivity.java
public class LoginActivity extends Activity implements LoginView {
private static final String TAG = LoginActivity.class.getSimpleName();
@Bind(R.id.signup)
SignInButton mSignUp;
@Inject
LoginPresenter mLoginPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_container);
getApplication().getComponent().inject(this);
ButterKnife.bind(this);
mLoginPresenter.setLoginView(this);
}
@OnClick(R.id.signup)
protected void onSignIn() {
mLoginPresenter.registerWithGcm(this);
}
}
登录.hasOnClickListeners()上的assertTrue
失败。但是,如果使用常规的按钮
,则测试通过。我还尝试了includetestCompile'org.roblectric:shadowsplayservices:3.0'
,但也没有成功
我应该如何继续测试这个组件?此外,我应该在
机器人分子项目上创建一个新问题吗?问题解决了吗?没有,还没有解决