Espresso - 验证TextView内容Android

时间:2017-04-21 06:46:51

标签: android android-espresso

我正在尝试在Android上编写Expresso Test来验证TextView内容。 当我从资源中读取文本时,它可以正常工作

    @Test
    public void changeText_newActivity() {
        onView(withId(R.id.mainContent)).check(matches(withText("Hello World!")));
}

以上是使用浓缩咖啡的测试 下面是Android活动的代码

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/mainContent"
    android:text="@string/hello_world"
    />

但是当我使用硬编码文本替换文本而不是引用资源时,测试失败并且错误无法在视图层次结构中找到视图

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/mainContent"
    android:text="Hello world!"
    />

以下是运行测试时的错误

android.support.test.espresso.NoMatchingViewException:找不到层次结构中的视图匹配:with text:是“Hello world!”

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

Code    "Hello world!"
               ^
Test    "Hello World!"

看到区别? Ww不一样。

Espresso理所当然地找不到这样的观点,因为没有任何东西。

答案 1 :(得分:0)

使用以下代码

import numpy as np
import scipy as sp
import scipy.stats as stats
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.get_backend()
from scipy.optimize import curve_fit
%matplotlib inline
f = open('50Hz15kO.txt') #raw data
header = f.readline()
time = np.zeros(115)
vcap = np.zeros(115)
vso = np.zeros(115)
udata = np.zeros(115)
i = 0

for line in f:
line = line.strip()
columns = line.split()
for i in range(115):
    vcap[i] = float(columns[1])
    time[i] = float(columns[0])
    vso[i] = float(columns[3])
    udata[i] = vcap[i]*0.02
    i = i + 1

在某些情况下,eqaulIgnoreCase也是更好的选择。