2011-06-27 18 views
6

Eylem sınıflarımı jUnit eklentisiyle test etmeye çalışıyorum. eylem şuna benzer:Sonuç türü döşeme olduğu zaman birim sınaması başarısız olur

@Action(value = "default", results = { 
    @Result(name = "success", type="tiles", location = "login") }) 
public String defaultAction() { 
    return SUCCESS; 
} 

Ben proxy.execute() test çöküyor çağırdığınızda. Muhtemelen testimi kiremitle yapan bir şey unutuyorum, ama ne olabileceğine dair bir fikrim yok. aşağıdaki yığın izleme almak: I aşağıdaki işlem değiştiğinde

java.lang.NullPointerException 
at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105) 
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) 
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) 
... 

test normal yürütür: proxy.setExecuteResult(false):

@Action(value = "default", results = { 
    @Result(name = "success", type="redirectAction", location = "login") }) 
public String defaultAction() { 
    return SUCCESS; 
} 
+0

Bir NPE'ye neyin neden olacağını görmek için TilesResult'da 105 numaralı çizgiye bakmayı deneyebilirsiniz. –

+0

'TilesContainer container = TilesAccess.getContainer (servletContext); ... container.render (konum, istek, yanıt); 'konteyner 'boş. Ama nedenini bilmiyorum. – Hayk

cevap

8

proxy.execute() önce, executeResultfalse eden değere ayarlanmalıdır.

+0

"[npe-in-strutstestcase-sonra-etkinleştirme-fayans)] 'daki yanıt (http://stackoverflow.com/questions/5823709/npe-in-strutstestcase-after-enabling-tiles#9062291)" nasıl kurulacağını gösterir NPE'yi geçmek için junit ve fayans – rveach

İlgili konular