Estou com problema para passar a classe temperatura no teste de temperatura

public class Temperatura
{
private double Celsius ;
private double Fahrenheit ;
private double Kelvin ;

public Temperatura(double Celsius, double Fahrenheit , double Kelvin){
    setCelsius( Celsius );
    setFahrenheit( Fahrenheit );
    setKelvin( Kelvin );
}

public void setCelsius(double Celsius){
    this.Celsius=Celsius;
}

public double getCelsius(){
    return Celsius;
}

public void setFahrenheit(double Fahrenheit){   
    this.Fahrenheit = Fahrenheit ;
}

public double getFahrenheit(){
    return Fahrenheit ;
}

public void setKelvin(double Kelvin ){
    this.Kelvin = Kelvin ;
}

public double getKelvin(){
    return Kelvin ;
}

public void CalcularCelsius(){
    //Celsius
    this.Celsius=Celsius ;
    this.Fahrenheit = ( (Celsius * (9/5))+32);
    this.Kelvin= ( Celsius + 273.15 );
}

public void CalcularFahrenheit(){
    //Fahrenheit
    this.Celsius =( ((Fahrenheit - 32) * (5/9)) ); 
    this.Fahrenheit= ( Fahrenheit );
    this.Kelvin =( ((Fahrenheit-32) * (5/9)) + 273.15 );
}

public void CalcularKelvin(){   
    //Kelvin
    this.Celsius = ( Kelvin-273 );
    this.Fahrenheit =( (((Kelvin - 273.15) *9/5) +32) );
    this.Kelvin = (Kelvin);
}

}

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

public class TesteTemperatura
{

private static final double DELTA = 0.001;
private Temperatura temperatura;
@Before
public void antesDeCadaTeste() {
    temperatura = new Temperatura( 0 , 0, 0);
}

@Test
public void deveTerOsEstadoInicialZero() {
    assertEquals(0, temperatura.getCelsius(), DELTA);
    assertEquals(0, temperatura.getFahrenheit(), DELTA);
    assertEquals(0, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmCelcisus() {
    temperatura.setCelsius(30);
    assertEquals(30, temperatura.getCelsius(), DELTA);
    assertEquals(86, temperatura.getFahrenheit(), DELTA);
    assertEquals(303.15, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmFahrenheit() {
    temperatura.setFahrenheit(50);
    assertEquals(10, temperatura.getCelsius(), DELTA);
    assertEquals(50, temperatura.getFahrenheit(), DELTA);
    assertEquals(283.15, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmKelvin() {
    temperatura.setKelvin(273.15);
    assertEquals(0, temperatura.getCelsius(), DELTA);
    assertEquals(32, temperatura.getFahrenheit(), DELTA);
    assertEquals(273.15, temperatura.getKelvin(), DELTA);
}

}

Eu posso estar engando mas não entendi onde estão os testes de temperatura, só vi teste de CPF.

Se vc quer uma sugestão… eu não faria assim.

A temperatura é uma só. A agua ferve numa dada temperatura. Se vc mede em kelvin ou celsius vc tem numeros diferentes da mesma coisa.

Portanto, é mais coerente vc escolher uma escala ( por exemplo Kelvin ). e vc armazena uma temperatura.

Quando alguem te passar kelvin, vc salva. quando alguem te passar Celcius vc converte pra kelvin e salva.

se alguem te pedir kelvin, vc passa. se alguem te pedir Celcius vc converte e passa.

Vc pode ter 3 construtores diferentes.

Há alguns anos eu escrevi esta classe que facilita a conversão de temperaturas.

Exemplo de uso:

Unit c = Unit.celsius(25); // 25°C
Unit k = celsius.toKelvin();
Unit f = celsius.toFarenheit();
println("C: " + c);
println("K: " + k);
println("F: " + f);

Hoje em dia eu implementaria uma unica classe Temperatura pensando em imutabilidade.

Poderia ser Temperatura<Unidade> onde Unidade sabe as regras de conversão.

1 curtida

Desculpe coloquei o teste errado , mas já corrigi .

Desculpe coloquei o teste errado , mas já corrigi .

O teste que minha classe tem que passar é esse :

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

public class TesteTemperatura
{

private static final double DELTA = 0.001;
private Temperatura temperatura;
@Before
public void antesDeCadaTeste() {
    temperatura = new Temperatura( 0 , 0, 0);
}

@Test
public void deveTerOsEstadoInicialZero() {
    assertEquals(0, temperatura.getCelsius(), DELTA);
    assertEquals(0, temperatura.getFahrenheit(), DELTA);
    assertEquals(0, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmCelcisus() {
    temperatura.setCelsius(30);
    assertEquals(30, temperatura.getCelsius(), DELTA);
    assertEquals(86, temperatura.getFahrenheit(), DELTA);
    assertEquals(303.15, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmFahrenheit() {
    temperatura.setFahrenheit(50);
    assertEquals(10, temperatura.getCelsius(), DELTA);
    assertEquals(50, temperatura.getFahrenheit(), DELTA);
    assertEquals(283.15, temperatura.getKelvin(), DELTA);
}

@Test
public void deveSerPossivelAlterarATemperaturaEmKelvin() {
    temperatura.setKelvin(273.15);
    assertEquals(0, temperatura.getCelsius(), DELTA);
    assertEquals(32, temperatura.getFahrenheit(), DELTA);
    assertEquals(273.15, temperatura.getKelvin(), DELTA);
}

}

Poderia me ajudar ? por gentileza.