2017-01-16 5 views
0

Я новичок на Свифта, и я не могу знать, что я делаю неправильно.не могу понять значение типа «ViewController» не имеет ни одного члена „averageIsAbove“

Мои тестовые файлы говорит ценам ниже Значение типа '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

Это MVvController это имя, или опечатка? Вы импортировали свой класс ViewController в тесты с помощью '@ testable'? –

ответ

0

Прежде всего, вы должны сделать метод доступным для всех. Добавьте class перед ключевым словом func, чтобы сделать это в вашем классе ViewController.

Далее вы вызываете 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

Я попробовал, и он все еще не работает. Все еще показывая -Value типа '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 и сделайте экземпляр ViewController2 первым в ViewController1, например let testVC = ViewController2(), но тогда вы должны подклассифицировать ViewController2 из некоторого класса с помощью init –

 Смежные вопросы

  • Нет связанных вопросов^_^