2015-03-30 88 views
-1

所以這是我圍棋的車型之一:測試轉到模型

type ObjectReference struct { 
IRI   string `json:"iri" bson:"iri"` 
ObjectType string `json:"objectType" bson:"objectType,omitempty"` 
ActivityType string `json:"activityType,omitempty" bson:"activityType,omitempty"` 
Errors     `bson:"-"` 

}

我對ActivityType作爲驗證:

objTypeSuccess := o.ObjectType == "activity" 
success = success && objTypeSuccess 
if (!objTypeSuccess) { 
    o.errors = append(o.errors, "Object objectType supplied : " + o.ObjectType + " is invalid. Valid object types are : [activity]") 
} 

其中

o *ObjectReference is in the func() definition 

我想寫一個測試,如下所示:

 testObj = models.ObjectReference{ 
     // Invalid Obj Type 
     IRI: "http://localhost:8001/launched", 
     ObjectType: ????, 
     ActivityType: testObjType, 
    } 

我不太瞭解如何初始化我的testObj中的ObjectType。有人可以幫我弄這個嗎?

+0

將其設置爲一個字符串,其值不'「活動」'? – maerics

+1

我只是好奇你爲什麼複製粘貼的代碼,你不明白,因爲你肯定複製粘貼這個代碼,如果你是無能爲力的ObjectType。該驗證在ObjectType上,而不是在ActivityType上。很明顯,您會希望至少對ObjectType進行積極和消極的測試。所以,也許你想要一個版本,你把價值「活動」,而不是「活動」。 –

回答

1

ObjectReference.ObjectTypestring類型的字段。這就是說你可以使用string類型的表達式來初始化它。 string類型的最基本/簡單表達式是一個字符串文字,例如"hello"

由於在您的測試代碼中,您將其與值"activity"進行比較,我假設您想要使用它進行初始化。你可以是這樣做的:

testObj = models.ObjectReference{ 
    IRI: "http://localhost:8001/launched", 
    ObjectType: "activity", 
    ActivityType: testObjType, 
} 

當然你可以指定stirng類型的任何其他值/表達式:

testObj = models.ObjectReference{ 
    IRI: "http://localhost:8001/launched", 
    ObjectType: "NOT-AN-ACTIVITY", 
    ActivityType: testObjType, 
} 
+0

謝謝!我是Go新手,這幫助我糾正錯誤。謝謝。 – chipmunk