Utilização do Junit para testes de verificação de classes

Gostaria de saber como se faz para testar se existe algum erro em uma classe com o JUnit. Usei o seguinte método:

	public void testMostraInformacoes() throws Exception {

		// Arrange
		Aluno a1 = new Aluno(123456, "Carlos", true, "Computação");
		ca.realizaMatricula(a1);
		RDM r1 = new RDM();
		r1.novaDisciplina("Ter 11:00 & Sex 11:00", "Metodos Avançados em Programação", "COMP07", "B101");
		rdms.add(r1);

		// Act
		try {
			print.mostraInformacoes(ca, rdms);
			fail("Expected throws ControleAcademicoExceptions");
		} catch (Exception e) {
			// Assert
			System.out.println(new ControleAcademicoException());
			
		}
	}

Posta o código que vc está testando.


Em relação ao teste, esse assert está errado, pq ele não está verificando nada. E esse fail tb não faz sentido.

Oi Lucas, este código foi do exercício anterior que estava fazendo e a professora disse que não estava correto mas não disse o que era. Então eu queria saber como fazer o teste para verificar quando há erro na entrada de um objeto. Tenho a impressão de ter visto antes, mas não localizei mais o material, e a professora disse que era o dever de casa descobrir como fazer. A verdade é que o material do JUnit é vasto, não entendi como aplicar na prática. E os exemplos que tenho são restritos a equal e notequal. Tenho a impressão que não estou aprendendo nada. Não tenho a menor ideia de minha nota.

O exercicio é sobre Facade, segue o código. Não consegui fazer os testes porque estou pesquisando como fazer e ainda não encontrei nada. Se for possível você fazer sugestões ficarei muito agradecido.

public class Financeiras {
	private String balancoDeContas;
	private String folhaDePagamento;

	public Financeiras(String balancoDeContas, String folhaDePagamento) {
		this.balancoDeContas = balancoDeContas;
		this.folhaDePagamento = folhaDePagamento;
	}

	public String getBalancoDeContas() {
		return balancoDeContas;
	}

	public void setBalancoDeContas(String balancoDeContas) {
		this.balancoDeContas = balancoDeContas;
	}

	public String getFolhaDePagamento() {
		return folhaDePagamento;
	}

	public void setFolhaDePagamento(String folhaDePagamento) {
		this.folhaDePagamento = folhaDePagamento;
	}

	public void BalancoDeContas() {
		System.out.println(balancoDeContas);
	}

	public void FolhaDePagamento() {
		System.out.println(folhaDePagamento);
	}
}
public class Professores {

	private String alocacaoPorDisciplina;
	private String tempoDeCasa;

	public Professores(String alocacaoPorDisciplina, String tempoDeCasa) {
		this.alocacaoPorDisciplina = alocacaoPorDisciplina;
		this.tempoDeCasa = tempoDeCasa;
	}

	public String getAlocacaoPorDisciplina() {
		return alocacaoPorDisciplina;
	}

	public void setAlocacaoPorDisciplina(String alocacaoPorDisciplina) {
		this.alocacaoPorDisciplina = alocacaoPorDisciplina;
	}

	public String getTempoDeCasa() {
		return tempoDeCasa;
	}

	public void setTempoDeCasa(String tempoDeCasa) {
		this.tempoDeCasa = tempoDeCasa;
	}

	public void AlocacaoPorDisciplina() {
		System.out.println(alocacaoPorDisciplina);
	}

	public void TempoDeCasa() {
		System.out.println(tempoDeCasa);
	}
}
public class Alunos {

	private String historico;
	private String RDM;

	public Alunos(String historico, String RDM) {
		this.historico = historico;
		this.RDM = RDM;
	}

	public String getHistorico() {
		return historico;
	}

	public void Historico() {
		System.out.println(historico);
	}

	public String getRDM() {
		return RDM;
	}

	public void RDM() {
		System.out.println(RDM);
	}
}
public class Almoxarifado {

	private String estoque;
	private String pedidoDeCompra;

	public Almoxarifado(String estoque, String pedidoDeCompra) {
		this.estoque = estoque;
		this.pedidoDeCompra = pedidoDeCompra;
	}

	public String getEstoque() {
		return estoque;
	}

	public void Estoque() {
		System.out.println(estoque);
	}

	public String getPedidoDeCompra() {
		return pedidoDeCompra;
	}

	public void PedidoDeCompra() {
		System.out.println(pedidoDeCompra);
	}
}
public class InfraEstrutura {

	private String alocacaoDeSalas;

	public InfraEstrutura(String alocacaoDeSalas) {
		this.alocacaoDeSalas = alocacaoDeSalas;
	}

	public String getAlocacaoDeSalas() {
		return alocacaoDeSalas;
	}

	public void AlocacaoDeSalas() {
		System.out.println(alocacaoDeSalas);
	}
}
public class SIGUEPBFacade {

	private infAdministrativas infAdm;
	private Financeiras financeiras;
	private Professores professores;
	private Alunos alunos;
	private Almoxarifado almoxarifado;
	private InfraEstrutura infraEstrutura;

	public SIGUEPBFacade(infAdministrativas infAdm, Financeiras financeiras, Professores professores, Alunos alunos,
			Almoxarifado almoxarifado, InfraEstrutura infraEstrutura) {
		this.infAdm = infAdm;
		this.financeiras = financeiras;
		this.professores = professores;
		this.alunos = alunos;
		this.almoxarifado = almoxarifado;
		this.infraEstrutura = infraEstrutura;
	}

	public void realizaSIG() {
		infAdm.Reunioes();
		infAdm.Entrevistas();
		financeiras.BalancoDeContas();
		financeiras.FolhaDePagamento();
		professores.AlocacaoPorDisciplina();
		professores.TempoDeCasa();
		alunos.Historico();
		alunos.RDM();
		almoxarifado.Estoque();
		almoxarifado.PedidoDeCompra();
		infraEstrutura.AlocacaoDeSalas();
	}
}
public class SIGUEPBTestDrive {

	public static void main(String[] args) {
		infAdministrativas infAdm = new infAdministrativas("reunioes", "entrevistas");
		Financeiras financeiras = new Financeiras("balancoDeContas", "folhaDePagamento");
		Professores professores = new Professores("alocacaoPorDisciplina", "tempoDeCasa");
		Alunos alunos = new Alunos("historico", "RDM");
		Almoxarifado almoxarifado = new Almoxarifado("estoque", "pedidoDeCompra");
		InfraEstrutura infraEstrutura = new InfraEstrutura("alocacaoDeSalas");
		
	
		SIGUEPBFacade SIGUEPB = new SIGUEPBFacade(infAdm, financeiras, professores, alunos, almoxarifado, infraEstrutura);
		
		SIGUEPB.realizaSIG();
	}
}

Veja uma exemplo de uma classe com os testes unitários: Como resolvo esse problema? - #4 por Lucas_Camara

Olá Lucas!
Boa tarde!
Muito obrigado!

@Lucas_Camara, boa noite!
A professora pediu para colocar os objetos nas classes.
É dessa forma que já está não é?
Não estou vendo outra maneira de fazer…

Ela falou quais objetos devem ser colocados e em qual classe?

Não, não falou…

Tente explicar que problema esse código é para resolver.

O enunciado do problema é esse, mas ela não quer que sejam criados todos os métodos que seriam necessário para resolver este problema. O enfoque é o uso de fachadas.

Implemente o sistema de informação geral (SIG) utilizado na UEPB. Suponha que
este compreenda vários outros subsistemas responsáveis por atividades
relacionadas a setores específicos.
A partir do SIG é possível obter informações:
:black_small_square: Administrativas (reuniões agendadas com a diretoria, entrevistas);
:black_small_square: Financeiras (balanço de contas, folha de pagamento);
:black_small_square: Relacionadas ao professores (alocação por disciplina, tempo de
casa);
:black_small_square: Relacionada aos alunos (histórico e RDM);
:black_small_square: Ao almoxarifado (estoque, pedido de compra);
:black_small_square: À infra-estrutura (alocação de salas).

Como a ideia da pattern fachada serve para abstrair complexidades, é bem possível que vc precise mover a criação das instâncias que está no método main para a classe fachada. Talvez o mover as classes seja isso que ela quis dizer.

Mas, eu não mostrei o código a ela.
Apenas a saída do resultado.
O main está do exemplo que ela deu…

Entendi. Mas tah estranho, ela pediu para mover as classes sem ver o código?

Ela disse a pouco que estava no caminho.
É agora a apresentação dele, vamos ver como fica…

Em termos de facade, seu código parece que está correto viu.

Valeu, Lucas!
Muito obrigado!