新手求助,junit問題,請高手指點
我照著例子練習使用junit,有個問題不只怎麼回事,請高手指點
-------Money.java程式碼
public class Money{
private int fAmount;
private String fCurrency;
public Money(int amount, String currency){
fAmount = amount;
fCurrency = currency;
}
public int getAmount(){
return fAmount;
}
public String getCurrency(){
return fCurrency;
}
public boolean equals(Object anObject){
if(anObject instanceof Money){
Money aMoney = (Money)anObject;
return aMoney.getCurrency().equals(getCurrency()) && getAmount() == aMoney.getAmount();
}
return false;
}
public String toString(){
return String.valueOf(getAmount()) + "-" + getCurrency();
}
};
------MoneyBusiness.java 程式碼
public class MoneyBusiness{
public static Money add(Money m1,Money m2){
return new Money(m1.getAmount()+m2.getAmount(),m1.getCurrency());
}
public static Money add(int m1,int m2){
return new Money(m1+m2,"CHF");
}
public static void main(String[] args){
Money m12CHF = new Money(12,"CHF");
Money m14CHF = new Money(14,"CHF");
Money m = add(m12CHF,m14CHF);
System.out.println("add result: " + m.toString());
}
}
------MoneyBusinessTest.java程式碼
import junit.framework.TestCase;
import junit.framework.Assert;
public class MoneyBusinessTest extends TestCase {
private Money m12CHF;
private Money m14CHF;
protected void setUP(){
m12CHF = new Money(12,"CHF");
m14CHF = new Money(14,"CHF");
}
public void testAdd(){
Money expected = new Money(26,"CHF");
//Money result = new Money(26,"CHF");
Money result = MoneyBusiness.add(m12CHF,m14CHF);
Assert.assertTrue("***should be ture***",expected.equals(result));
}
}
--------------
執行MoneyBusiness.main方法沒問題
可用junit測試通不過,顯示:
java.lang.NullPointerException
at MoneyBusiness.add(MoneyBusiness.java:6)
at MoneyBusinessTest.testAdd(MoneyBusinessTest.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
請高手指點,不甚感激
-------Money.java程式碼
public class Money{
private int fAmount;
private String fCurrency;
public Money(int amount, String currency){
fAmount = amount;
fCurrency = currency;
}
public int getAmount(){
return fAmount;
}
public String getCurrency(){
return fCurrency;
}
public boolean equals(Object anObject){
if(anObject instanceof Money){
Money aMoney = (Money)anObject;
return aMoney.getCurrency().equals(getCurrency()) && getAmount() == aMoney.getAmount();
}
return false;
}
public String toString(){
return String.valueOf(getAmount()) + "-" + getCurrency();
}
};
------MoneyBusiness.java 程式碼
public class MoneyBusiness{
public static Money add(Money m1,Money m2){
return new Money(m1.getAmount()+m2.getAmount(),m1.getCurrency());
}
public static Money add(int m1,int m2){
return new Money(m1+m2,"CHF");
}
public static void main(String[] args){
Money m12CHF = new Money(12,"CHF");
Money m14CHF = new Money(14,"CHF");
Money m = add(m12CHF,m14CHF);
System.out.println("add result: " + m.toString());
}
}
------MoneyBusinessTest.java程式碼
import junit.framework.TestCase;
import junit.framework.Assert;
public class MoneyBusinessTest extends TestCase {
private Money m12CHF;
private Money m14CHF;
protected void setUP(){
m12CHF = new Money(12,"CHF");
m14CHF = new Money(14,"CHF");
}
public void testAdd(){
Money expected = new Money(26,"CHF");
//Money result = new Money(26,"CHF");
Money result = MoneyBusiness.add(m12CHF,m14CHF);
Assert.assertTrue("***should be ture***",expected.equals(result));
}
}
--------------
執行MoneyBusiness.main方法沒問題
可用junit測試通不過,顯示:
java.lang.NullPointerException
at MoneyBusiness.add(MoneyBusiness.java:6)
at MoneyBusinessTest.testAdd(MoneyBusinessTest.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
請高手指點,不甚感激
相關文章
- 求助:Apache的問題請高手指點(轉)Apache
- MySql 漢字問題? 請高手指點!MySql
- [求助]..新手!遇到struts呼叫sessionbean問題?SessionBean
- jbuilder9.0+jdk1.5的問題,請高手指點UIJDK
- 工作流問題,請高手指點一下!
- 新手FTP問題,等待高手指導!!!(轉)FTP
- 請高手指點
- jboss問題,請各位高手指教!
- 關於單點登入的若干問題,請高手指教
- 配置tomcat叢集出現了問題,請高手指點Tomcat
- JUnit原始碼中有一點疑問,請教原始碼
- 求教,請高手指點!
- xml方面的的問題,請高手指教XML
- 關於jive的幾個小問題,請高手指點,多謝先。
- 關於資料庫中儲存中文的問題,請高手指點資料庫
- 一道JAVA 考試題 請高手指點Java
- 新手安裝struts+jdon+hibernate時的錯誤,請高手指點
- 問一個小的運算問題,請高手指教!
- 請高手指點:redhat9.0自帶瀏覽器Mozilla的問題(轉)Redhat瀏覽器
- 求解決方案!!請高手指點
- jbuilder整合mysql的問題,哭求高手指點UIMySql
- 求助(請教C語言編譯問題)(轉)C語言編譯
- 看了《java實用系統開發指南》後,有個問題請高手指點?????Java
- java新手求助。。。。。。。。。。。Java
- github新手指南Github
- SASS 新手指南
- 請高手指點一下啊
- 開源ORM工具,請高手指點ORM
- 關於HibernateDaoSupport使用的問題,高手指點
- Tomcat服務問題,Cpu100%,急需幫助,請高手指點,謝謝!!!Tomcat
- JDBC問題,求助JDBC
- 【求助】請教一個初學java的小問題Java
- Bash新手指南(zt)
- swing程式打成jar包,執行出現(could not find the main class)問題,請高手指點!!JARAI
- 關於執行緒的問題,清高手指點執行緒
- 求助,castor的問題AST
- 求助!castor unmarshall問題AST
- Eclipse快速上手指南之使用JUnitEclipse