java - 即使通过java中的测试传递值,属性也为空?

标签 java unit-testing testng

我有下面提到的 2 个类(class)。 第一个:EmployeeDetails

package com.pacakge.emp;

public class EmployeeDetails {

    private String name; 
    private double monthlySalary;
    private int  age;

    //return name 
    public String getName()

    {
        return name;
    }
    //set the name 
    public void setName(String name)
    {
        name= this.name;
    }
    //get month sal 
    public double getMonthSal()
    {
        return monthlySalary;
    }
    //set month salary 
    public void setMonthSalry(double monthlySalary)
    {
        monthlySalary =this.monthlySalary;  
    }

第二个:EmpBusinessLogic

package com.pacakge.emp;

public class EmpBusinessLogic {

    //calculate yearly salary of the employee 
    public double calculateYearlySalary(EmployeeDetails empdetails)
    {
        double yearlySalary;
        yearlySalary =empdetails.getMonthSal()*12;

        return yearlySalary;            
    }

这是我的测试课

package com.pacakge.emp;

import org.testng.Assert;
import org.testng.annotations.Test;

public class TestEmployeeDetails {

    EmployeeDetails emp = new EmployeeDetails();

    EmpBusinessLogic EmpBusinessLogic = new EmpBusinessLogic();

       // Test to check yearly salary
       @Test
       public void testCalculateYearlySalary() {

          emp.setName("saman");
          emp.setAge(25);
          emp.setMonthSalry(8000.0);
          emp.getName();
          System.out.println(emp.getName());

          double salary = EmpBusinessLogic.calculateYearlySalary(emp);
          Assert.assertEquals(salary, "8000");
       }
}

即使我从测试方法传递了值,值也不会传递到属性。 “System.out.println(emp.getName());”打印 null 没有任何值。 代码有什么问题吗?找不到问题所在...

最佳答案

你的 setter 和 getter 是错误的......

修改名称 setter ,例如来自:

name= this.name;

致:

this.name = name;

说明:

您正在对传递给方法的变量进行赋值,而不是将其赋值给对象变量。同样适用于 monthlySalary 以及其他字段(您在方法名称中也遇到了拼写错误:setMonthSalry())。

关于java - 即使通过java中的测试传递值,属性也为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418503/

相关文章:

java - 排序 ListView 时不调用比较方法

java - Sonar 似乎忽略了 catch block 中设置的变量

java - 如何为每个项目设置 java 警告

Java 数组列表创建

Python 接口(interface)模式和单元测试代码覆盖率

swift - 在单元测试中运行异步代码的问题

c# - 将单元测试附加到 C# 项目的标准方法

java - 如何在 TestNG 测试用例中使用 Governator 注入(inject)依赖项?

java - 在测试方法中重新加载或刷新 Spring 应用程序上下文?

java - 屏幕截图未附加到使用 testNG 运行的 allure 报告中