小编huf*_*man的帖子

使用模拟 ViewModel 测试 Android ViewModelProvider

我很高兴使用新的 Android 架构组件 ViewModel 系统,它很好地将 Activity/Fragment/Layout 渲染问题与 ViewModel 逻辑分开。我已经成功地对 ViewModel 进行了单独的单元测试,现在想通过向 Activity/Fragment 提供针对各种状态场景的模拟 ViewModel 来尝试一些屏幕截图测试。

我已经成功配置了我的 androidTests,以便能够在我的设备测试中使用 Mockito,这部分效果很好。

然而,官方推荐的调用 ViewModelProvider 或委托的方法by viewModels<>似乎没有提供注入模拟 ViewModel 的方法。我不想只是为了解决文档中的这一遗漏而添加整个 DI 框架,所以我想知道是否有人有任何成功的示例,可以使用官方 Android 架构组件提供模拟 ViewModel,而无需额外依赖 Dagger 或 Hilt。

一年前唯一相关的答案ActivityTestRule建议使用并手动控制活动生命周期,但该规则已被弃用,取而代之的activityScenarioRule是不提供此控制的规则。

android unit-testing mvvm

7
推荐指数
1
解决办法
3103
查看次数

XSLT函数和命名空间

我是XSLT的新手,我已经完成了基本的转换.接下来我想尝试日期操作,因为我的数据将有时间戳.但是,我似乎无法使用任何日期功能,这让我非常沮丧.我正在使用Firefox 3.5,xsltproc 1.1.24,xalan 1.10和XMLSpy 2009进行测试,他们都说我尝试使用的功能不存在.

我的xml看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="datetime.xsl"?>

<watcher>
  <event id="1" date="2009-09-04T13:49:10-0500" type="ABCD">This is a test  </event>
</watcher>
</code>
Run Code Online (Sandbox Code Playgroud)

我的xsl看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xsl:template match="event[@type='ABCD']">
<!--            Date: <xsl:value-of select="day-from-dateTime(xs:dateTime(@date))"/> -->
<!--            Date: <xsl:value-of select="day-from-dateTime(@date)"/> -->
                Date: <xsl:value-of select="fn:day-from-dateTime(@date)"/>
</xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

如果我制作样式表版本2,XMLSpy会抱怨它无法投射我的日期: XSLT 2.0 Debugging Error: Error in XPath 2.0 expression (Cast failed, invalid lexical value - xs:dateTime '2009-09-04T13:49:10-0500')

如果我将其保留为版本1,它会抱怨不同的错误: XSLT 1.0 Debugging Error: Error in XPath expression (Unknown function - Name …

xslt xpath

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

mvvm ×1

unit-testing ×1

xpath ×1

xslt ×1