新手求助,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)
請高手指點,不甚感激
相關文章
- github新手指南Github
- 容器雲新手求助
- 新手指南基礎學
- 新手求助composer報錯
- SAE安裝問題,求助
- Composer 使用遇到問題求助
- go熱更新問題求助Go
- 求助,大佬請進!
- 請問怎麼進不了安裝介面呢,求助
- 【譯】理解JavaScript閉包——新手指南JavaScript
- python 詭異問題求助各位大哥Python
- javascript--陣列的方法(新手指導)JavaScript陣列
- [譯] 快速原型設計的新手指南原型
- 迴歸測試遇到的問題求助
- 「Mac新手指南」使用力度觸控板進行“用力點按”的方法Mac
- 用 Swift 實現通知推送的新手指南Swift
- web攻擊日誌分析之新手指南Web
- 深度學習框架新手快速上手指南深度學習框架
- [提問交流]新手求助啊get_document_model方法在哪裡定義的?
- 【譯】一份關於npm的新手指南NPM
- 美洽線上客服系統的新手指南
- [提問交流]關於Jquery Append鉤子的問題,大神求助!jQueryAPP
- [提問交流]【小白求助】onethink後臺檔案上傳問題
- 新手大資料必問十個問題大資料
- 請教phpword問題PHP
- 新手指南: 手把手教你安裝 Ubuntu 和 FedoraUbuntu
- 移動測試新手指引--ADB 連線裝置
- 【Mac新手指南】:Mac電腦要如何快速鎖屏Mac
- 新手入門 Golang 常見問題Golang
- **【求助】關於抽樣和標準化的問題**
- 求助!關於npm install 老是出現這個問題NPM
- [求助] 請問大佬,python 如何透過字典去修改 json 裡的 value 呢?PythonJSON
- 大請求、請求超時問題
- 請問一個 authorize的問題
- 請教Beego Router 問題Go
- 請教下 lockForUpdate () 的問題
- 請教一個問題,
- 【新手指南】Android Studio中應用App的相關配置AndroidAPP
- 求助,遇到個問題!jmeter 可以錄製公網的介面請求,但區域網的介面錄製不到JMeter