2017-01-16 14 views
0

の型の値を把握することはできません。は、私はスウィフトの初心者だと私は私が間違ってやってるかを知るように見えることはできません「のViewControllerはaverageIsAbove 『」何のメンバーを持っていない』

私のテストファイルを語ります below-タイプの値 'のViewController' にはメンバー 'averageIsAbove'

func testAverageIsAbove75(a: Double, b: Double, c: Double) { 
    XCTAssertFalse(testVC.averageIsAbove(a:76, b:75, c:71.9), "Average is below 75, it should return false." ) 

MViewControllerファイルが機能としてこれを持っていない:

func averageIsAbove75(a: Double, b: Double, c: Double) -> Bool{ 
    if (a * b * c)/3 > 75 { 
     return true 
    } 
    else { 
     return false 
    } 
} 
+0

あなたはtestVCインスタンスを作成したり、testVCと呼ばれる自分のクラスでいましたか? – Emptyless

+0

私はtestVCを作成しませんでした。これは私たちの研究室の一部です。 – user7427861

+0

'MViewController'は実際の名前ですか、またはタイプミスですか? ViewControllerクラスを '@ testable'を使ってテストにインポートしましたか? –

答えて

0

まず、すべての人にこのメソッドを実行可能にする必要があります。 ViewControllerクラス内でfuncキーワードの前にclassを追加してください。

次に、testAverageIsAboveを呼び出していますが、その機能はaverageIsAbove75と呼ばれています。以下を変更してみてください:

これに
XCTAssertFalse(testVC.averageIsAbove(a:76, b:75, c:71.9), "Average is below 75, it should return false." ) 

XCTAssertFalse(testVC.averageIsAbove75(a:76, b:75, c:71.9), "Average is below 75, it should return false." ) 
+0

私はそれを試してもまだ動作しません。まだ表示されている - 'ViewController'タイプの値に 'averageIsAbove'というメンバーはありません – user7427861

+0

関数を公開関数にします –

+0

申し訳ありませんが、私はそれを行う方法があまりよく分かりません。 ? – user7427861

0
class ViewController1 : UIViewController { 
    func testAverageIsAbove75(a: Double, b: Double, c: Double) { 
     XCTAssertFalse(ViewController2.averageIsAbove75(a:76, b:75, c:71.9), "Average is below 75, it should return false." ) 
    } 
} 


class ViewController2 { 
    class func averageIsAbove75(a: Double, b: Double, c: Double) -> Bool{ 
     if (a * b * c)/3 > 75 { 
      return true 
     } 
    else { 
      return false 
     } 
    } 
} 
+0

またはfuncの前にクラスを削除し、let testVC = ViewController2()のようにViewController1のViewController2のインスタンスを作成しますが、その後、ViewController2をいくつかのクラスからサブクラス化する必要があります –

関連する問題