数学の個別指導アプリケーションを構築しており、angular の e2e テスト スイートを使用して UI をテストしたいと考えています。
現在、ランダムな分数を生成し、一連の陰影付きおよび陰影なしのボックスを表示し、ユーザーに陰影によって形成された分数を入力するよう求める分数ページに取り組んでいます。
e2e testを使用して、UI が正しい入力と正しくない入力の両方にどのように応答するかをテストしたいと思います。ただし、ページの読み込み時に分数がランダム化されるため、テスト内からの「正しい」入力が何であるかはわかりません。
入力に対する正しい答えを得る最も簡単な方法は$scope.problemObject
、コントローラーの at にある Fraction オブジェクトにアクセスし、その API 関数.getNumerator()
とを呼び出すこと.getDenominator()
です。ただし、テスト内からこのオブジェクトにアクセスする方法が見つかりませんでした。
私のコントローラーからの関連行は次のとおりです。
$scope.problemObject = Fraction.random();
// This produces an object with two relevant
// functions (getNumerator() & getDenominator())
私が試したこと
binding()
最初は必要なことを行うと思っていましたが、などbinding()
へのすべての呼び出しは、バインディングが見つからないというエラーを発行します。これは、と の戻り値がUI に直接バインドされていないためだと思われます。binding('problemObject')
binding('problemObject.getNumerator()'
$scope.problemObject
$scope.problemObject.getNumerator()
angular.element().scope()
angular.element('#problem').scope().problemObject
私がテストしているページのコンソールからの実行は完全に機能します。ただし、テスト内から同じ行を試すと、「セレクターが実装されていません」というエラーが発生します。
私もいくつかのバリエーションを試しました:
element('#problem').scope().problemObject
: エラー: 'オブジェクト # にはメソッド 'scope' がありません''
angular.element(element('#problem')).scope().problemObject
: エラー: 「未定義のプロパティ 'problemObject' を読み取ることができません」