eclipse 环境 JUnit 测试框架(junit.framework.* 与 org.junit.*)

如下所示,先通过 build path 导入 junit 环境依赖的 jar 包:


这里写图片描述

1. junit.framework.*

  • junit.framework.* 主要类和函数:
    • Test
    • TestCase
    • TestSuite

实现并运行(run as => Java Application,因其有 java 应用所需的入口函数:main 函数)如下的代码:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;

public class FileReaderTester extends TestCase
{
    private FileReader input = null;

    public FileReaderTester(String name)
    {
        super(name);
    }

    protected void setUp()
    {
        try
        {
            input = new FileReader("data.txt");
        } catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    public void testRead() throws IOException
    {
        char ch = '&';
        for (int i = 0; i < 4; ++i)
        {
            ch = (char)input.read();
        }
        assertEquals('d', ch);
    }

    protected void tearDown()
    {
        try
        {
            input.close();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
    }

    public static Test suite()
    {
        TestSuite suite = new TestSuite();
        suite.addTest(new FileReaderTester("testRead"));
        return suite;
    }

    public static void main(String[] args)
    {
        TestRunner.run(suite());
    }

}

2. org.junit.*

  • 待测试的功能类的工作,不依赖任何相关的测试类;
    • 可以独立运行;
    • 测试类的对象则是待测试的功能类;
    • 测试类构造的用例是为了保证待测试的功能类能够如期望的那样运行;
    • 测试类构造用例的对象是功能类的某一成员函数

这种类库层级形式,一般是通过 eclipse 界面操作完成的:

  • 完成功能类的开发;
  • 右键此待测类:
    • new => JUnit Test Case,选择 setUp, tearDown 等上下文函数;
    • next => 勾选待测类中的待测函数;
  • eclipse 自动生成相关代码;
  • 右键 run as => Junit Test

3. references

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
org.junit.ComparisonFailure: expected:<456[]> but was:<456[ ]> at org.junit.Assert.assertEquals(Assert.java:115) at org.junit.Assert.assertEquals(Assert.java:144) at Dao.BookDaoTest.testAddBook(BookDaoTest.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
06-12
Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions.TestSetup.class junit.extensions.package-info.class junit.framework.Assert.class junit.framework.AssertionFailedError.class junit.framework.ComparisonCompactor.class junit.framework.ComparisonFailure.class junit.framework.JUnit4TestAdapter.class junit.framework.JUnit4TestAdapterCache.class junit.framework.JUnit4TestCaseFacade.class junit.framework.Protectable.class junit.framework.Test.class junit.framework.TestCase.class junit.framework.TestFailure.class junit.framework.TestListener.class junit.framework.TestResult.class junit.framework.TestSuite.class junit.framework.package-info.class junit.runner.BaseTestRunner.class junit.runner.TestRunListener.class junit.runner.Version.class junit.runner.package-info.class junit.textui.ResultPrinter.class junit.textui.TestRunner.class junit.textui.package-info.class org.hamcrest.BaseDescription.class org.hamcrest.BaseMatcher.class org.hamcrest.CoreMatchers.class org.hamcrest.Description.class org.hamcrest.Factory.class org.hamcrest.Matcher.class org.hamcrest.SelfDescribing.class org.hamcrest.StringDescription.class org.hamcrest.core.AllOf.class org.hamcrest.core.AnyOf.class org.hamcrest.core.DescribedAs.class org.hamcrest.core.Is.class org.hamcrest.core.IsAnything.class org.hamcrest.core.IsEqual.class org.hamcrest.core.IsInstanceOf.class org.hamcrest.core.IsNot.class org.hamcrest.core.IsNull.class org.hamcrest.core.IsSame.class org.hamcrest.internal.ArrayIterator.class org.hamcrest.internal.SelfDescribingValue.class org.hamcrest.internal.SelfDescribingValueIterator.class org.junit.After.class org.junit.AfterClass.class org.junit.Assert.class org.junit.Assume.class org.junit.Before.class org.junit.BeforeClass.class org.junit.ComparisonFailure.class org.junit.Ignore.class org.junit.Rule.class org.junit.Test.class org.junit.experimental.ParallelComputer.class org.junit.experimental.categories.Categories.class org.junit.experimental.categories.Category.class org.junit.experimental.max.CouldNotReadCoreException.class org.junit.experimental.max.MaxCore.class org.junit.experimental.max.MaxHistory.class org.junit.experimental.results.FailureList.class org.junit.experimental.results.PrintableResult.class org.junit.experimental.results.ResultMatchers.class org.junit.experimental.runners.Enclosed.class org.junit.experimental.theories.DataPoint.class org.junit.experimental.theories.DataPoints.class org.junit.experimental.theories.ParameterSignature.class org.junit.experimental.theories.ParameterSupplier.class org.junit.experimental.theories.ParametersSuppliedBy.class org.junit.experimental.theories.PotentialAssignment.class org.junit.experimental.theories.Theories.class org.junit.experimental.theories.Theory.class org.junit.experimental.theories.internal.AllMembersSupplier.class org.junit.experimental.theories.internal.Assignments.class org.junit.experimental.theories.internal.ParameterizedAssertionError.class org.junit.experimental.theories.suppliers.TestedOn.class org.junit.experimental.theories.suppliers.TestedOnSupplier.class org.junit.internal.ArrayComparisonFailure.class org.junit.internal.AssumptionViolatedException.class org.junit.internal.ComparisonCriteria.class org.junit.internal.ExactComparisonCriteria.class org.junit.internal.InexactComparisonCriteria.class org.junit.internal.JUnitSystem.class org.junit.internal.RealSystem.class org.junit.internal.TextListener.class org.junit.internal.builders.AllDefaultPossibilitiesBuilder.class org.junit.internal.builders.AnnotatedBuilder.class org.junit.internal.builders.IgnoredBuilder.class org.junit.internal.builders.IgnoredClassRunner.class org.junit.internal.builders.JUnit3Builder.class org.junit.internal.builders.JUnit4Builder.class org.junit.internal.builders.NullBuilder.class org.junit.internal.builders.SuiteMethodBuilder.class org.junit.internal.matchers.CombinableMatcher.class org.junit.internal.matchers.Each.class org.junit.internal.matchers.IsCollectionContaining.class org.junit.internal.matchers.StringContains.class org.junit.internal.matchers.SubstringMatcher.class org.junit.internal.matchers.TypeSafeMatcher.class org.junit.internal.requests.ClassRequest.class org.junit.internal.requests.FilterRequest.class org.junit.internal.requests.SortingRequest.class org.junit.internal.requests.package-info.class org.junit.internal.runners.ClassRoadie.class org.junit.internal.runners.ErrorReportingRunner.class org.junit.internal.runners.FailedBefore.class org.junit.internal.runners.InitializationError.class org.junit.internal.runners.JUnit38ClassRunner.class org.junit.internal.runners.JUnit4ClassRunner.class org.junit.internal.runners.MethodRoadie.class org.junit.internal.runners.MethodValidator.class org.junit.internal.runners.SuiteMethod.class org.junit.internal.runners.TestClass.class org.junit.internal.runners.TestMethod.class org.junit.internal.runners.model.EachTestNotifier.class org.junit.internal.runners.model.MultipleFailureException.class org.junit.internal.runners.model.ReflectiveCallable.class org.junit.internal.runners.package-info.class org.junit.internal.runners.statements.ExpectException.class org.junit.internal.runners.statements.Fail.class org.junit.internal.runners.statements.FailOnTimeout.class org.junit.internal.runners.statements.InvokeMethod.class org.junit.internal.runners.statements.RunAfters.class org.junit.internal.runners.statements.RunBefores.class org.junit.matchers.JUnitMatchers.class org.junit.matchers.package-info.class org.junit.package-info.class org.junit.rules.ErrorCollector.class org.junit.rules.ExpectedException.class org.junit.rules.ExternalResource.class org.junit.rules.MethodRule.class org.junit.rules.TemporaryFolder.class org.junit.rules.TestName.class org.junit.rules.TestWatchman.class org.junit.rules.Timeout.class org.junit.rules.Verifier.class org.junit.runner.Computer.class org.junit.runner.Describable.class org.junit.runner.Description.class org.junit.runner.JUnitCore.class org.junit.runner.Request.class org.junit.runner.Result.class org.junit.runner.RunWith.class org.junit.runner.Runner.class org.junit.runner.manipulation.Filter.class org.junit.runner.manipulation.Filterable.class org.junit.runner.manipulation.NoTestsRemainException.class org.junit.runner.manipulation.Sortable.class org.junit.runner.manipulation.Sorter.class org.junit.runner.manipulation.package-info.class org.junit.runner.notification.Failure.class org.junit.runner.notification.RunListener.class org.junit.runner.notification.RunNotifier.class org.junit.runner.notification.StoppedByUserException.class org.junit.runner.notification.package-info.class org.junit.runner.package-info.class org.junit.runners.AllTests.class org.junit.runners.BlockJUnit4ClassRunner.class org.junit.runners.JUnit4.class org.junit.runners.Parameterized.class org.junit.runners.ParentRunner.class org.junit.runners.Suite.class org.junit.runners.model.FrameworkField.class org.junit.runners.model.FrameworkMember.class org.junit.runners.model.FrameworkMethod.class org.junit.runners.model.InitializationError.class org.junit.runners.model.RunnerBuilder.class org.junit.runners.model.RunnerScheduler.class org.junit.runners.model.Statement.class org.junit.runners.model.TestClass.class org.junit.runners.package-info.class org/hamcrest/core/package.html org/hamcrest/package.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值