我正在使用Robolectric并尝试创建GoogleApiClient的Shadow对象,但未成功。从不调用Shadow类中的方法。 GoogleApiClient是界面 - 这可能是个问题吗?有没有办法如何“遮蔽”GoogleApiClient界面(或在测试中模拟GoogleApiClient)?
实施:
@Implements(GoogleApiClient.class)
public class ShadowGoogleApiClient {
public void __constructor__ (){
System.out.println("__constructor____constructor__");
}
@Implementation
void connect() {
System.out.println("connectconnectconnect");
}
@Implementation
boolean isConnected() {
System.out.println("isConnectedisConnected");
return false;
}
@Implementation
boolean isConnecting() {
System.out.println("isConnectingisConnecting");
return false;
}
}
我在测试中定义了Shadow类:
@Config(shadows = {ShadowGoogleApiClient.class},
constants = BuildConfig.class)
@RunWith(CustomRobolectricRunner.class)
public class ApiTest {
...
}
答案 0 :(得分:0)
您是否曾尝试使用Mockito来模拟GoogleApiClient的实现?
insert_data = []
with open('data.txt') as f:
state = 'HEADER'
headers = []
for line in f.readlines():
if state == 'HEADER':
headers = [header.lower().strip().replace(' ', '_') for header in line.split('|')]
state = 'IGNORE'
elif state == 'IGNORE':
state = 'DATA'
elif state == 'DATA':
data_values = map(str.strip, line.split('|'))
insert_entry = {}
for key, data in zip(headers, data_values):
insert_entry[key] = data
insert_data.append(insert_entry)
for row in insert_data:
form = PersonForm(row)
if form.is_valid():
form.save()
else:
print form.errors()