Java android中Mimetype的单元测试用例

Java 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

我最近在android中编写测试用例,我想在get-Mimetype from-url上编写测试用例。在应用程序模式下工作正常,但在测试用例中不工作,我尝试了不同的方法,但没有通过测试用例,请告诉我哪里出错了。任何人都可以帮我提前谢谢

这是我的密码: MainActivity.java

    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
返回空字符串。也许你也需要测试这些方法。谢谢你的回复。我仍然尝试获取空字符串。我有一个问题,它在主代码中工作,但在测试用例中不工作,并且获取空值。