我正在构建一个数学辅导应用程序,并想使用 Angular 的 e2e 测试套件来测试我的 UI。
目前我正在制作一个分数页面,该页面生成一个随机分数,显示一系列阴影和非阴影框,并要求用户输入由阴影形成的分数。
使用e2e 测试,我想测试 UI 如何响应正确和不正确的输入;但是,由于分数在页面加载时是随机的,所以我不知道测试内部的“正确”输入是什么。
对我来说,获得正确输入答案的最简单方法是访问位于$scope.problemObject
控制器的 Fraction 对象,并调用其 API 函数.getNumerator()
和.getDenominator()
. 但是,我还没有找到从我的测试中获取这个对象的方法。
我的控制器的相关行是:
$scope.problemObject = Fraction.random();
// This produces an object with two relevant
// functions (getNumerator() & getDenominator())
我试过的
binding()
最初我认为binding()
会做我需要的事情,但是所有对binding('problemObject')
orbinding('problemObject.getNumerator()'
的调用都会发出一个错误,指出无法找到绑定。我怀疑这是因为$scope.problemObject
它的返回值$scope.problemObject.getNumerator()
没有直接绑定到 UI。
angular.element().scope()
angular.element('#problem').scope().problemObject
从我正在测试的页面上的控制台执行完美;但是,在我的测试中尝试同一行会出现以下错误:“选择器未实现”。
我也尝试了一些变化:
element('#problem').scope().problemObject
:错误:'对象#没有方法'范围''
angular.element(element('#problem')).scope().problemObject
:错误:'无法读取未定义的属性'problemObject''