Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 朱尼特保姆卡塔_Java_Testing_Junit_Calculator - Fatal编程技术网

Java 朱尼特保姆卡塔

Java 朱尼特保姆卡塔,java,testing,junit,calculator,Java,Testing,Junit,Calculator,我在java/junit上运行保姆kata的测试时遇到了一些问题。我的测试一直告诉我预期的是16,但实际上是60。我不知道我的数学在哪里出了问题才能得到这个输出。我希望我的预期成绩与第二次考试的实际成绩相符 public Object calculatePay() { int potentialPayBefore10 = 12; int potentialPayAfter10 = 8; // $12 hour * 5 hours worked

我在java/junit上运行保姆kata的测试时遇到了一些问题。我的测试一直告诉我预期的是16,但实际上是60。我不知道我的数学在哪里出了问题才能得到这个输出。我希望我的预期成绩与第二次考试的实际成绩相符

public Object calculatePay() {
        int potentialPayBefore10 = 12;
        int potentialPayAfter10 = 8;

        // $12 hour * 5 hours worked
        potentialPayBefore10 = 12 * 5;
        potentialPayAfter10 = 8 * 2;

        // TODO Auto-generated method stub

        if (potentialPayBefore10 < 60) {
            return potentialPayAfter10;
        } else
            return potentialPayBefore10;

    }

}


public class DaysWorked {

    /*
     * Story: As a babysitter In order to get paid for 1 night of work I want to
     * calculate my nightly charge
     */

    // Project Goal: Create test to show Mellie being paid

    // Start with calc time for 1 hour of work
    @Test
    public void calculatepayforworkafterstarttimeat12hourly() {
        // 5 is hours worked if start at 5 pm til 10p
        MellieWageCalculator potentialPay = new MellieWageCalculator(5);
        // assert equals gives -> (expected, actual)
        assertEquals(60, potentialPay.calculatePay());
    }

    @Test
    public void calculatepayforworkafter10pmat8hourly() {
        // 2 hours worked if start at 10pm til 12 pm
        MellieWageCalculator potentialPay = new MellieWageCalculator(2);
        assertEquals(16, potentialPay.calculatePay());

    }

}
public Object calculatePay(){
int-potentialPayBefore10=12;
int-potentialPayAfter10=8;
//$12小时*5小时工作时间
10年前的潜在工资=12*5;
10年后的潜在付款=8*2;
//TODO自动生成的方法存根
如果(10日之前的潜在工资<60){
10年后的潜在回报;
}否则
10日前的潜在回报;
}
}
公共课开始了{
/*
*故事:作为一名保姆,为了得到一晚工作的报酬,我想
*计算我的夜间费用
*/
//项目目标:创建测试以显示Mellie获得了报酬
//开始计算1小时的工作时间
@试验
public void CalculatePayForWorkAfterStartTimeat12小时(){
//如果从下午5点开始到晚上10点,是否工作5小时
MellieWageCalculator potentialPay=新的MellieWageCalculator(5);
//断言等于给出->(预期、实际)
资产质量(60,潜在薪酬计算表());
}
@试验
10 pmat8小时后工作的公共无效计算时间(){
//如果从晚上10点开始工作到下午12点,工作时间为2小时
MellieWageCalculator potentialPay=新的MellieWageCalculator(2);
资产质量(16,潜在薪酬计算表());
}
}

正如
@sirandy
所述,您的代码似乎是静态的,因此它为两个测试用例生成相同的结果。添加一个私有类变量来动态存储工资可能有助于通过测试

private int hoursWorked= 0;
public MellieWageCalculator(int i) {
    // TODO Auto-generated constructor stub
    this.hoursWorked= i;
}

public Object calculatePay() {
    int potentialPayBefore10 = 12;
    int potentialPayAfter10 = 8;

    // $12 hour * 5 hours worked
    potentialPayBefore10 = 12 * hoursWorked;
    potentialPayAfter10 = 8 * hoursWorked;

    // TODO Auto-generated method stub

    if (potentialPayBefore10 < 60) {
        return potentialPayAfter10;
    } else
        return potentialPayBefore10;

}
private inthoursworked=0;
公共计算机(int i){
//TODO自动生成的构造函数存根
这个.hourswerk=i;
}
公共对象calculatePay(){
int-potentialPayBefore10=12;
int-potentialPayAfter10=8;
//$12小时*5小时工作时间
10日前的潜在工资=12*工作小时;
10小时后的潜在工资=8*工作小时;
//TODO自动生成的方法存根
如果(10日之前的潜在工资<60){
10年后的潜在回报;
}否则
10日前的潜在回报;
}

您的calculatePay()方法总是返回60,因此当您与16进行比较时,assertEquals将失败。这是有效的!!!我真不敢相信我错过了保密……天哪,路易斯!非常感谢。