2017-03-26 1 views
1

Python에 익숙하지 않아 pytest 또는 unittest를 사용하여 작성한 코드를 테스트하여 Python으로 코딩하는 방법을 배우고 싶습니다. 그 점에서 나는 입력으로 다수의 배열에 대한 주장을 테스트하는 방법 궁금 해요 :여러 개의 정수 배열에 대한 테스트를 작성하는 방법은 무엇입니까?

나는 정수를 반환하는 것을 목표로하는 기능 extractDifferentNumber 정수의 순서의 나머지 부분에 속하지 않는이 있습니다

def extractDifferentNumber(df): 
    df_set = set(df) 
    for each in df_set: 
     if df.count(each) == 1: 
      return each 
숫자의 순서가 서로 다른 번호를 추출

는 :

:

이제
# print(extractDifferentNumber([10,11,10,10,10,10,10])) 11 
# print(extractDifferentNumber([20,11,20,20,20])) 11 
# print(extractDifferentNumber([1,1,1,1,2])) 2 

내 기능이 예상 결과를 반환하는지 확인하기 위해 유닛 테스트를 사용하고 싶습니다 내가 self.inputself.expected과 어떻게 올릴 수 있습니다 예를 들어 self.assertTrue 같은 적절한 주장이 유닛 테스트에 사용하는 등 여러 배열 /을 testcases을 포함 할 수있는 방법

: 그 점에서 16,

class SingleDifferentNumberTestCase(unittest.TestCase): 
    """Test for `myfunction.py`""" 

    def setUp(self): 
     self.input = [10,11,10,10,10,10,10] 
     self.expected = [11] 

    def test_is_different(self): 
     """Is a number different then the others""" 
     self.assertTrue(extractDifferentNumber()) 


if __name__ == '__main__': 
    unittest.main() 
, 나는이 개 질문이?

+0

방법 [1,2,3]에 대해? – Copperfield

+0

@Copperfield : 자, 남자, 질문은 단위 테스트를 작성하는 방법에 관한 것입니다. 특정 알고리즘으로 코너 케이스를 처리하는 방법이 아닙니다. Mamba는 확실히 우리에게 MVCE를 제공했습니다. – 2ps

+0

@ 2ps 잘, 당신은 이미 그 부분을 다루고 있습니다. 코너 케이스도 고려해보십시오. 더 좋은 알고리즘을 만드는 데 도움이되는 것들입니다. – Copperfield

답변

2

그냥 add multiple methods 각 문자 test로 시작하는, • 테스트 케이스가 unittest.TestCase을 서브 클래스에 의해 생성된다

. 세 개의 개별 테스트는 이름이 글자 test으로 시작하는 메소드로 정의됩니다. 이 명명 규칙은 시험 주자에게 시험을 나타내는 에 대해 알려줍니다.

각 테스트의 핵심은 예상 결과를 확인하기 위해 assertEqual()을 호출하는 것입니다. 조건을 확인하기 위해 assertTrue() 또는 assertFalse(); 또는 assertRaises()을 사용하여 특정 예외가 발생했는지 확인하십시오. 이러한 메서드는 assert 문 대신 사용되므로 테스트 테스트 주자는 모든 테스트 결과를 누적하여 보고서를 생성 할 수 있습니다.


class SingleDifferentNumberTestCase(unittest.TestCase): 
    """Test for `myfunction.py`""" 

    def test_array_1(self): 
     """Is a number different then the others""" 
     self.assertEqual(extractDifferentNumber([10,11,10,10,10,10,10]), 11) 

    def test_array_2(self): 
     self.assertEqual(extractDifferentNumber([20,11,20,20,20]), 11) 

    def test_array_3(self): 
     self.assertEqual(extractDifferentNumber([1,1,1,1,2]), 2)   
+0

시간 내 주셔서 감사합니다! –

관련 문제