You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中ViewModel测试类为何自动使用测试数据文件而非正式数据文件?

问题解答
  • 这事儿跟@Test注解关系不大,核心是Android项目的测试源码集机制加上项目本身的依赖设计:

    1. Android项目默认分main(正式代码)和test(本地测试)两个源码目录,Gradle编译测试代码时,会优先用test包下的类——如果test包里有和main包同名、同包结构的类,测试代码会自动用这个测试版本,不用额外导入。
    2. 你学的Unscramble项目里,应该把单词数据源做成了接口(比如WordRepository),main包下是正式的单词列表实现,test包下则是专门给测试用的固定小数据集。ViewModel依赖的是这个接口,不是具体的实现类,所以在测试环境里会自动用上test包的测试数据源。
  • 你可以自己核对:

    • 打开项目的test目录,找和main包下数据源类同名的文件(比如DefaultWordRepository),里面的内容就是测试用的固定数据。
    • 看ViewModel的构造函数,会发现它参数是接口类型(比如WordRepository),不是直接new正式的数据源类,这就是能自动切换数据的关键。

内容的提问来源于stack exchange,提问作者MrFlavour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:34:56