나는 간단한 테스트를 시도하고 콘솔에서이 오류 메시지가 가지고있다 :(장고 테스트) assertIs 오류
AIL: test_get (navbar.test.ContextManagerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/media/me/049C11249C1111B2/backup me/Freizeit/Django Projekte/mysitetest/lib/navbar/test.py", line 16, in test_get
self.assertIs(cm.get('hi/du',0), 'hi')
AssertionError: 'hi' is not 'hi'
우리는 마지막 줄에서 볼 수, cm.get('hi/du',0)
는 'hi'
를 반환했습니다. 그러나 왜 시험은 실패 했는가?
self.assertIs('hi','hi')
도 이것 :
self.assertIs(['hi'][0],'hi')
도이 하나
self.assertIs(cm.get('hi',0),'hi')
는 첫째, 그 코드 라인에 오류가있을 수 thaught 없지만, 어느 쪽도
이 (가) 실패했습니다.
는 더 나은 이해를 위해, 나는 cm.get(mypattern,number)
의 코드를 추가 :
def get(self, mypattern, number):
parts = mypattern.split('/').strip()
return parts[number]
이 실패 시험의 코드입니다 :
def test_get(self):
cm = context.ContextManager([])
self.assertIs(cm.get('hi',0), 'hi')
self.assertIs(cm.get('hi/du',0), 'hi') #this line failed
self.assertIs(cm.get('hi/du',1), 'du')
있었다처럼 보이는 split()
기능에 문제가 있지만 적어도, cm.get('hi/du',0)
retur ns 'hi'
, 위의 stacktrace에서 확인할 수 있습니다. 기억에 대한
나는 관련 행을 추가
self.assertIs(cm.get('hi/du',0), 'hi')
AssertionError: 'hi' is not 'hi'
작은 세부 사항 (I이 중요 여부를 알 수 없음) : 나는 python3 manage.py test lib/navbar
와 테스트를 시작했다.
왜 실패했는지 알 수 있습니까? 아니면 적어도 추측이 있습니까? 이것을 읽어 주셔서 감사합니다.
당신이 몇 가지 더 많은 정보를 제공 할 수 있는지 여부를 확인합니다 :는 A, b 값
assertIs(a, b)
비교 'context.ContextManager'는 무엇입니까? 왜 assertIs를 사용해야합니까? 기본적으로 객체가 같은지 아닌지를 나타냅니다. 당신이 값을 비교하기 원한다면 AsserEqual을 사용할 수 있다고 생각합니다. –탱크 있습니다! 그게 내가 필요한 정보 였어. 답으로 써라. 나는 그것을 해결 된 것으로 표시 할 것이다. 그것은 실수였습니다. 때로는 그것이 보이는 것보다 적어도 더 쉽습니다 ;-) – Asqiir