Java android中Mimetype的单元测试用例
我最近在android中编写测试用例,我想在get-Mimetype from-url上编写测试用例。在应用程序模式下工作正常,但在测试用例中不工作,我尝试了不同的方法,但没有通过测试用例,请告诉我哪里出错了。任何人都可以帮我提前谢谢 这是我的密码: MainActivity.javaJava android中Mimetype的单元测试用例,java,android,unit-testing,Java,Android,Unit Testing,我最近在android中编写测试用例,我想在get-Mimetype from-url上编写测试用例。在应用程序模式下工作正常,但在测试用例中不工作,我尝试了不同的方法,但没有通过测试用例,请告诉我哪里出错了。任何人都可以帮我提前谢谢 这是我的密码: MainActivity.java public class MainActivity extends AppCompatActivity { private static final String TAG = "MainA
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "www.toyota.com/content/ebrochure/2018/avalon_ebrochure.pdf";
getContentType(pdf);
}
// get mimetype from the url
public String getContentType(String url) {
String type = "";
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
if (extension != null) {
type =MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
}
return type;
}
}
MainActivityTest.java
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class MainActivityTest {
String url = "www.toyota.com/content/ebrochure/2018/avalon_ebrochure.pdf";
@Test
public void getContentType(){
String result = (new MainActivity()).getContentType(url);
assertEquals("application/pdf", result);
}
}
输出:
junit.framework.ComparisonFailure:
Expected :application/pdf
Actual :
如果在运行测试时使用Robolectric模拟Android环境,则需要自己注册媒体类型。默认情况下,模拟的
MimeTypeMap
为空
shadowOf(MimeTypeMap.getSingleton()).addExtensionMimeTypMapping(“pdf”,“application/pdf”);
如果在运行测试时使用Robolectric模拟Android环境,则需要自己注册媒体类型。默认情况下,模拟的
MimeTypeMap
为空
shadowOf(MimeTypeMap.getSingleton()).addExtensionMimeTypMapping(“pdf”,“application/pdf”);
显然,您的
getContentType
方法返回一个空字符串。查看该代码,有两种方法可以实现:调用MimeTypeMap.getFileExtensionFromUrl
后的extension
为null
,或者调用MimeTypeMap.getSingleton().getMimeTypeFromExtension
返回空字符串。也许你也需要测试这些方法。谢谢你的回复。我仍然尝试获取空字符串。我有一个问题,它在主代码中工作,但在测试用例中不工作,并且获取空值。显然,您的getContentType
方法返回空字符串。查看该代码,有两种方法可以实现:调用MimeTypeMap.getFileExtensionFromUrl
后的extension
为null
,或者调用MimeTypeMap.getSingleton().getMimeTypeFromExtension
返回空字符串。也许你也需要测试这些方法。谢谢你的回复。我仍然尝试获取空字符串。我有一个问题,它在主代码中工作,但在测试用例中不工作,并且获取空值。