|
|
|
试题2、根据题目描述,编写Java代码完成测试。 本题分值:20分 考核时间:30分钟 考核方式:实操 考核内容:现Casher类中有compute函数用来计算商品价格并根据情况打折和优惠。代码如下: - public class Casher {
- public double compute(int count, double price) {
- double totalPrice = 0.0;
- if (count <= 1) {
- totalPrice = count * price;
- } else if (count <= 5) {
- totalPrice = count * price * 0.95;
- } else if (count <= 10) {
- totalPrice = count * price * 0.85;
- } else {
- totalPrice = count * price * 0.8;
- }
- totalPrice -= Math.floor(totalPrice / 300) * 30;
- return totalPrice;
- }
- }
复制代码- import org.junit.Test;
- import static org.junit.Assert.*;
- public class CasherTest {
- Casher casher = new Casher();
- //测试无折扣
- @Test
- public void testNo() {
- assertEquals(100,casher.compute(1,100),0.01);
- assertEquals(0,casher.compute(0,100),0.01);
- }
- //测试95折
- @Test
- public void test95() {
- assertEquals(190,casher.compute(2,100),0.01);
- assertEquals(285,casher.compute(3,100),0.01);
- assertEquals(350,casher.compute(4,100),0.01);//此时满一个300减一个30
- assertEquals(445,casher.compute(5,100),0.01);
- }
- //测试85折
- @Test
- public void test85() {
- assertEquals(480,casher.compute(6,100),0.01);
- assertEquals(565,casher.compute(7,100),0.01);
- assertEquals(620,casher.compute(8,100),0.01);//此时满两个300减两个30
- assertEquals(705,casher.compute(9,100),0.01);
- assertEquals(790,casher.compute(10,100),0.01);
- }
- //测试8折
- @Test
- public void test8() {
- assertEquals(820,casher.compute(11,100),0.01);
- assertEquals(870,casher.compute(12,100),0.01);//此时满三个300减三个30
- }
- //测试满300减30
- @Test
- public void test300() {
- assertEquals(350,casher.compute(4,100),0.01);
- assertEquals(620,casher.compute(8,100),0.01);
- assertEquals(870,casher.compute(12,100),0.01);
- }
- }
复制代码
|
|