我想用反射實(shí)現(xiàn)Go接口以生成模擬和存根。但是,如果我看一看反射包,我不知道該怎么做(也許是不可能的)。例如:測(cè)試是否FUNC電話WriteHeader(404)上ResponseWriter:type ResponseWriterMock struct { // status int //} // How to replacefunc (*ResponseWriterMock) Header() Header {} // this block with func (*ResponseWriterMock) Write([]byte) (i int, e error) {} // a reflectivly func (m *ResponseWriterMock) WriteHeader(status int) { // generated mock? m.status = status // } //responseWriterMock := new(ResponseWriterMock)funcToTest(responseWriterMock)if responseWriterMock.status != 404 { // report error}使用RhinoMocks(C#),我會(huì)這樣寫:var responseWriterMock = MockRepository.GenerateMock<ResponseWriter>();funcToTest(responseWriterMock);responseWriterMock.AssertWasCalled(rw => rw.WriteHeader(404));如何使用反射實(shí)現(xiàn)Go接口?
2 回答

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
據(jù)我所知和有關(guān)問題的答案,不可能在運(yùn)行時(shí)創(chuàng)建新類型。
您可能想嘗試應(yīng)該支持在Universe中定義新類型的go-eval
程序包。
- 2 回答
- 0 關(guān)注
- 220 瀏覽
添加回答
舉報(bào)
0/150
提交
取消