所以我有3个包,实现,接口和测试。我想把这个功能写进员工的小程序,这样我的单元测试在Test员工的小程序上运行时就不会出错。但是,我不确定如何编写get雇员计数,因为它在单元测试中失败。我试图通过创建int计数来解决它,但它不起作用。我知道我需要使用数组列表来计算员工的数量,但是我不能想出一个解决方案,我也找不到任何像我的单元测试一样的代码示例。如果有人能帮忙,将不胜感激。
//EmployeeImp
import java.util.ArrayList;
import java.util.List;
import interfaces.Employer;
import interfaces.Person;
public class EmployerImpl implements Employer {
private String name;
private List<Person> employees;
private int count;
public EmployerImpl(String n) {
//gets name
this.name = n;
//Array List
employees = new ArrayList<Person>();
// TODO Auto-generated constructor stub
}
@Override
public void hire(Person p, String title, double salary) {
p.setJob(null);
employees.add(p);
}
@Override
public List<Person> getEmployees() {
//Returns Employees in a List
return employees;
}
@Override
public int getEmployeeCount() {
return this.count;
//Returns employees size
}
@Override
public boolean fire(Person p) {
// TODO Auto-generated method stub
return false;
}
@Override
public String getName() {
//returns name
return name;
}
@Override
public boolean isEmployed(Person p) {
// TODO Auto-generated method stub
return false;
}
@Override
public Person getHighestPaid() {
// TODO Auto-generated method stub
return null;
}
@Override
public Person getLowestPaid() {
// TODO Auto-generated method stub
return null;
}
@Override
public double getStaffCost() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getCountOf(String title) {
// TODO Auto-generated method stub
return 0;
}
@Override
public List<Person> getAll(String title) {
// TODO Auto-generated method stub
return null;
}
}
//Employer.java
import java.util.List;
public interface Employer {
void hire(Person p, String title, double salary);
List<Person> getEmployees();
int getEmployeeCount();
boolean fire(Person p);
String getName();
boolean isEmployed(Person p);
Person getHighestPaid();
Person getLowestPaid();
double getStaffCost();
int getCountOf(String title);
List<Person> getAll(String title);
}
//TestEmployeeImp
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import implementation.EmployerImpl;
import implementation.PersonImpl;
import interfaces.Employer;
import interfaces.Person;
class TestEmployerImpl {
private Employer e;
private Person highest;
private Person lowest;
@BeforeEach
void setUp() throws Exception {
e = new EmployerImpl("NCCO");
lowest = new PersonImpl("John", 18);
e.hire(lowest, "Lab Assistant", 20000);
highest = new PersonImpl("Anu", 50);
e.hire(highest, "Best Teacher", 80000);
e.hire(new PersonImpl("Damien", 18), "Teacher", 41000);
e.hire(new PersonImpl("Malachy", 45), "Teacher", 50000);
}
@Test
void testGetEmployees() {
List<Person> l = e.getEmployees();
assertNotNull(l);
assertEquals(4, l.size());
}
@Test
void testGetEmployeeCount() {
assertEquals(4, e.getEmployeeCount());
Person p = new PersonImpl("Paul H", 50);
e.hire(p, "teacher", 1000);
assertEquals(5, e.getEmployeeCount());
e.fire(p);
assertEquals(4, e.getEmployeeCount());
}
@Test
void testFire() {
Person p = new PersonImpl("Damien", 18);
boolean f= e.fire(p);
assertTrue(f);
assertEquals(3, e.getEmployeeCount());
p = new PersonImpl("Danika", 23);
f = e.fire(p);
assertFalse(f);
}
@Test
void testGetName() {
assertEquals("NCCO", e.getName());
}
@Test
void testIsEmployed() {
Person p = new PersonImpl("Damien", 18);
assertTrue(e.isEmployed(p));
p = new PersonImpl("Danika", 23);
assertFalse(e.isEmployed(p));
}
@Test
public void testGetHighestPaid() {
assertEquals(highest, e.getHighestPaid());
}
@Test
void getLowestPaid() {
assertEquals(lowest, e.getLowestPaid());
}
@Test
void getStaffCost() {
assertEquals(191000, e.getStaffCost());
}
@Test
void testGetCountOf() {
assertEquals(2, e.getCountOf("Teacher"));
assertEquals(0, e.getCountOf("Awesome Teacher"));
}
@Test
void testGetAll(){
assertEquals(2, e.getAll("Teacher").size());
assertNotNull(e.getAll("Dean"));
assertTrue(e.getAll("Dean").isEmpty());
}
}
我看不到任何初始化或递增的代码。但是正如你所说,你不需要Count
变量,只需在员工
列表中使用size()
方法
@Override
public int getEmployeeCount() {
return this.employees.size();
}
公共静态员工getEmployeeDetails()--它获取员工的详细信息-id、姓名和工资,并返回Employee对象。 public static int getpfpercentry()-它获取PF百分比并返回相同的 在main方法中调用上述两个方法,然后调用Employee类中的calculateNetSalary方法并打印输出,如下所示。 输入ID:101输入姓名:Vivek输入工资:
由于hive只支持从类集中的子查询,如select*from(subquery),也只支持equjo,因此我们如何从表中计算累积工资,如表员工有记录如下。 因此输出应该如下所示 我怎么能在蜂巢里做到这一点
我的工作对象是: SpringMVC测试 汉克雷斯特 JsonPath 我对服务器的响应有以下几点看法: 以下工作符合预期(有效): 我需要测试是1。确认存在1项。它再次确认以下内容: 我试过: 观察和
如何使用约束流api计算员工的公平性。 https://www.optaplanner.org/blog/2017/02/03/FormulaForMeasuringUnfairness.html 我在网球求解器示例中看到了上述流口水的实现。 https://github.com/kiegroup/optaplanner/blob/581d10fb8140f37b7491d06b2bab8d5ac
问题内容: 例如 : 如何使用mysql计数此表的列? 问题答案:
我知道在一堂课上 我可以在初始值设定项列表中初始化,如下所示: 但是,如果计算所需的数据来自字符串并且可能涉及计算,那么从第二个构造函数初始化的正确方法是什么?