在 idea 的 mybatis 測(cè)試類中調(diào)用接口方法時(shí)報(bào)錯(cuò)
在編寫 mybatis 測(cè)試類時(shí),調(diào)用用戶映射器接口 usermapper 中的 list 方法卻遇到了報(bào)錯(cuò):”non-Static method ‘list()’ cannot be referenced from a static context”。
原因分析
出現(xiàn)此報(bào)錯(cuò)的原因是,在測(cè)試類中,編譯器無(wú)法識(shí)別接口變量 usermapper。在 Java 中,接口變量必須先被實(shí)例化才能使用。
解決方法
要解決此問(wèn)題,需要在測(cè)試類中實(shí)例化 usermapper 接口??梢园凑找韵虏襟E進(jìn)行:
-
在測(cè)試類中創(chuàng)建 usermapper 接口的實(shí)例:
private usermapper usermapper; // 聲明一個(gè) usermapper 實(shí)例變量
登錄后復(fù)制 -
在測(cè)試方法中注入 usermapper 實(shí)例:
@autowired public void setusermapper(usermapper usermapper) { this.usermapper = usermapper; }
登錄后復(fù)制 -
在測(cè)試方法中調(diào)用 list 方法:
List<User> users = userMapper.list(); // 調(diào)用 list 方法
登錄后復(fù)制
通過(guò)以上步驟實(shí)例化 usermapper 接口,編譯器就可以識(shí)別接口變量,從而解決報(bào)錯(cuò)。