1

나는이 같은 모델이있는 경우 : age의 인덱스가 False로 설정되어있는 경우 내가 테스트 할 수 있습니다 방법단위 테스트를 작성하여 속성이 indexed = False로 설정되어 있는지 확인하는 방법은 무엇입니까?

class Person(ndb.Model): 
    name = ndb.StringProperty() 
    age = ndb.IntegerProperty(indexed=False) 

를?

+0

TDD에서는 모든 기대치를 캡처해야합니다. 불필요한 인덱스를 없애면 성능이 향상되고 GAE의 쓰기 비용이 절감됩니다. – Houman

+0

간단한'self.assertFalse (Person.age._indexed)'는 어떨까요? 당신에게 도움이되지 않는 이유는 무엇입니까? –

+0

멋지게 작동하는 @AlexMartelli. 응답으로 추가하십시오. – Houman

답변

2

당신이 필요하다 : 어떤 합병증없이

self.assertFalse(Person.age._indexed) 

.

0
properties = Person._properties 
assertEqual(properties["age"], GenericProperty('age', indexed=False)) 

코드에 어떤 현상이 있는지에 따라 어설트 문에 다른 속성이 필요할 수 있습니다.

Person._properties을 사용하면 기대해야 할 내용을 확인할 수 있습니다. 또는 indexed=False을 구문 분석하거나 _properties 출력에서 ​​bool을 구문 분석하고 훨씬 더 구체적인 테스트를 제공하는 훨씬 간단한 어설 션을 사용할 수 있습니다.

+0

제안 해 주셔서 감사합니다. 'BadFilterError : 잘못된 필터 : 인덱싱되지 않은 속성 나이에 대해 질의 할 수 없습니다 .' – Houman

+1

그 오류를 잡아서 성공으로 간주할까요? 당신의 오류는 "나이"가 색인되지 않는다는 것을 보여주기 때문입니다. 당신 목표는 아니 었습니까? – Patrice

관련 문제