rmonico / neutrino

3 stars 1 forks source link

Não funciona detecção de bad smells com import org.junit.*; #9

Closed saulodefaria closed 11 years ago

saulodefaria commented 12 years ago

Deu esse erro:

java.lang.ClassCastException: org.eclipse.jdt.core.dom.PackageBinding cannot be cast to org.eclipse.jdt.core.dom.ITypeBinding at org.ita.neutrino.astparser.SourceFileParser$ImportVisitor.visit(SourceFileParser.java:44) at org.eclipse.jdt.core.dom.ImportDeclaration.accept0(ImportDeclaration.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:218) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.ita.neutrino.astparser.SourceFileParser.populateImportList(SourceFileParser.java:176) at org.ita.neutrino.astparser.SourceFileParser.parse(SourceFileParser.java:166) at org.ita.neutrino.astparser.ASTParser.parseAllSourceFilesInWorkspace(ASTParser.java:118) at org.ita.neutrino.astparser.ASTParser.parse(ASTParser.java:72) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.getParsedCode(EclipseTestSmellDetector.java:89) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:61) at org.ita.neutrino.testsmells.core.EclipseTestSmellDetector.run(EclipseTestSmellDetector.java:51) at org.ita.neutrino.testsmells.ActionController.runDetection(ActionController.java:51) at org.ita.neutrino.testsmells.ActionController.run(ActionController.java:42) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Com esse código:

import org.junit.; import static org.junit.Assert.;

public class TesteCarro { private Carro[] carro; @Before public void criaReferencia(){ carro = new Carro[3]; carro[0]= new Carro("delta", 200 , 400); carro[1]= new Carro("A", -2 , -4 ); carro[2]= new Carro("A", 500 , 900.3); } @Test public void testeConstrutor(){
verificaCondIniciais(); } @Test private void verificaCondIniciais() { assertTrue("lala",carro[0].getVelocidade() == 0); assertTrue(carro[0].getPotencia() == 400); assertTrue(carro[0].getVelocMax() == 200); assertTrue(carro[0].getApelido().equals("delta")); assertTrue(carro[0].getAceleracao() == 0.1_carro[0].getPotencia()); assertTrue(carro[0].getPorcent()== 0.7); assertTrue(carro[0].getReducao()== 0.5); } @Test public void testaconstrutor2(){
assertTrue ("Em caso de valor invalido a potencia default é 1", carro[1].getPotencia() == 1); assertTrue("Em caso de valor invalido a velocidade maxima default é 3", carro[1].getVelocMax() == 3); carro[1].setPorcent(9); carro[1].setReducao(-1); assertTrue("Em caso de setar valor invalido, porcent deve continuar com 0.7, default", carro[1].getPorcent()== 0.7); assertTrue("Valor invalido de reducao, permanece o valor de default: 0.5", carro[1].getReducao()== 0.5); carro[1].setPorcent(0.8); carro[1].setReducao(0.3); assertTrue("Testando se o valor 0.8 foi setado corretamente", carro[1].getPorcent() == 0.8); assertTrue("Testando se o valor 0.3 foi setado corretamente para a variavel reducao", carro[1].getReducao() == 0.3); } @Test public void testaAlgoritmoVeloc(){
while (carro[2].getVelocidade()< carro[2].getVelocMax()_carro[2].getPorcent()){ carro[2].acelerar(); } assertTrue("Verificando se a velocidade fica igual a porcent_velocidade, antes de ficar maior", carro[2].getVelocidade() == carro[2].getVelocMax()_carro[2].getPorcent()); assertTrue("Verificando se a aceleracao mudou para a reduzida, apos atingir porcent_velocidade" , carro[2].getAceleracao()== carro[2].getPotencia()_0.1*carro[2].getReducao()); for(int i =0 ; i < 50; i++){ carro[2].acelerar(); } assertTrue("Testando se a velocidade nao ultrapassou a maxima, mesmo apos varias chamadas do metodo acelerar" , carro[2].getVelocidade() == carro[2].getVelocMax()); } @Test public void testaAlgoritmoFrear(){

      int i = 0;
      double aux;

      carro[2].frear();
      assertTrue("Verificando se a velocidade nao fica menor que zero quando freia", carro[2].getVelocidade() == 0);
      carro[2].acelerar();
      carro[2].acelerar();
      for(i =0 ; i < 3; i++){
          carro[2].frear();
      }
      assertTrue("Velocidade minima é zero", carro[2].getVelocidade() == 0);

      for(i =0 ; i < 3; i++){
          carro[2].acelerar();
      }
      aux = carro[2].getVelocidade();
      carro[2].frear();
      assertTrue("Testando algoritmo pra frear numa situacao normal", carro[2].getVelocidade() == aux - carro[2].getAceleracao());
}

}

bbonagura9 commented 11 years ago

Resolvido.