2011-10-03 13 views

답변

0

내 자신의 질문에 대답하려면 : 아무 것도 없습니다. 그리고 정말로, 요점은 없습니다. C#/Java와 같은 언어에서는 유용하지만, 파이썬에서는 assert (i [1, 2, 3]에서와 같이)를 할 수 없습니다.

1

그 내장 라이브러리 unittest은 사용자가 추구하는 기능을 제공합니다. list of assert methods은 특정 어설 션을 작성하는 데 매우 유용합니다.

from unittest import TestCase 

class SomeTest(TestCase): 
    def setUp(self): 
     self.value = 5 

    def testMyValue(self): 
     self.assertEqual(self.value, 5) 

이것은 NUnit의 제약 조건과 다소 다르지만 매우 쉽게 적응할 수 있습니다.

2

파이썬 단위 테스트 도구에 그런 것이 있는지 모르겠지만 파이썬의 기능적 기능을 사용하여 스스로 롤업해야한다면 매우 쉽게 해결할 수있는 것처럼 보입니다. 당신은 단지 다음과 같이 사용할 수 있습니다, 그리고

def equal(testVal): 
    def c(val): 
     return testVal == val 

:

def assertThat(val, constraint): 
    assert(constraint(val)) 

제약이 방법을 정의 할 수 있습니다 : 예를 들어, 다음과 같이의가 assertThat라는 함수를 보자

assertThat(myVal, equal(5)) 

그것은 당신이 기대하는 바를 수행합니다.

그저 시작에 불과합니다. 데코레이터, 연산자 모듈 및 오후에, 매우 유용한 제약 기능 세트를 만들 수 있습니다.

+0

고마워요! 나는 자유로운 오후를 찾아야하고, 자기 자신의 버전을 굴려야 할 것 같다. 하지만 파이썬의 표현력은 아주 쉬워야합니다. 나는 이미 이것을 구현 한 아무도 놀랍지가 않다. – Stefan

+0

아마도 테스트 외에 다른 경우에 흥미로울 것입니다 ... – shash

0

testtools을 확인하고 나중에 나타나는 구문이있는 것 같습니다. 테스트를 더 읽기 좋게 만들고 Python 2.6 이상에서 작동합니다.

class TestSillySquareServer(TestCase): 

    def test_server_is_cool(self): 
     self.assertThat(self.server.temperature, Equals("cool")) 

    def test_square(self): 
     self.assertThat(self.server.silly_square_of(7), Equals(49)) 
관련 문제