JMockit編寫java單元測試

2021-09-02 15:58:04 字數 2092 閱讀 1412

jmockit例項

package test.mock.jmockit;

import static org.junit.assert.assertequals;

import mockit.deencapsulation;

import mockit.expectations;

import mockit.injectable;

import mockit.mock;

import mockit.mockup;

import mockit.mocked;

import mockit.tested;

import org.junit.test;

public class testjmockit

};//2. 獲取mock例項

dao dao = mockup.getmockinstance();

service service = new service();

service.setdao(dao);

//3. 呼叫

string sign = service.getcount();

system.out.println("測試結果:"+sign);

assertequals("良好", sign);

//4. 還原物件,避免測試方法之間互相影響。其實對乙個例項來說沒什麼影響,對靜態方法影響較大。舊版本的teardown()方法是mockit類的靜態方法

mockup.teardown();//dao為null,不可用了

// string sign2 = service.checkcount();

// system.out.println("*****"+sign2);

}/**

* 測試方法入參直接被mock

* @param dao

*/@test

public void param(@mocked final dao dao)

};service service = new service();

service.setdao(dao);

string sign = service.getcount();

system.out.println("測試結果:"+sign); }

@test

public void privatemethod()

};int age = service.test();

system.out.println("測試結果:"+age); }

//******************************==

@tested //自動構建,無需new,自動構建和注入例項

service serviceai;

@injectable //自動構建並注入到@tested例項中,並且自動會被mock

dao daoai;

/*** 自動注入:dao、service

*/@test

public void autoinject()

};string sign = serviceai.getcount();

system.out.println("測試結果:"+sign);

}}

package test.mock.jmockit;

public class service

public int getstudentage()

private static int hello()

private static int getage()

/*** 計算學生得分等級

* @return

*/public string getcount()else if(count < 90)else

return sign;

} public dao getdao()

public void setdao(dao dao)

}

package test.mock.jmockit;

public inte***ce dao

單元測試JMockit使用

title 單元測試jmockit使用 tags 由於目前dubbo等外部依賴越來越多 現在小夥伴關於測試經常跑不通 比如 之前也提供了stub方案,但是目前使用的人幾乎沒有junit測試之第三方元件mock 場景需要返回特殊的值 特定異常特定值 非法值等等就ok test public void ...

單元測試JMockit使用

title 單元測試jmockit使用 tags 由於目前dubbo等外部依賴越來越多 現在小夥伴關於測試經常跑不通 比如 之前也提供了stub方案,但是目前使用的人幾乎沒有junit測試之第三方元件mock 場景需要返回特殊的值 特定異常特定值 非法值等等就ok test public void ...

java編寫菱形

package aiqing public class lx for j 1 j 2 i 1 j system.out.print system.out.println for i 0 i 3 i for j 5 j 2 i 1 j system.out.print system.out.print...