标签: junit

为什么要使用JUnit进行测试?

也许我的问题是一个新手,但我不能真正理解我将使用

无论我是编写简单的应用程序还是更大的应用程序,我都会使用System.out语句测试它们,并且它对我来说很容易.

为什么在项目中创建带有JUnit的测试类,如果我们仍然需要调用相同的方法,检查它们返回的内容,那么我们是否需要注释所有内容?

为什么不写一个类并一次测试它System.out而不是创建Test-classes?

PS.我从未参与过我刚刚学习的大型项目.

那么目的是什么?

java tdd junit unit-testing

132
推荐指数
6
解决办法
6万
查看次数

Python在Jenkins中进行单元测试?

你如何让Jenkins执行python unittest案例?是否可以从内置unittest包中获得JUnit样式的XML输出?

python junit unit-testing xunit jenkins

129
推荐指数
4
解决办法
8万
查看次数

Junit @ Before/@之后的命令是什么?

我有一个集成测试套件.我有一个IntegrationTestBase课程,我的所有测试都要扩展.此基类具有@Before(public void setUp())和@After(public void tearDown())方法来建立API和DB连接.我一直在做的就是在每个测试用例中调用这两个方法并调用super.setUp()super.tearDown().但是,如果有人忘记调用父类或者把它们放在错误的地方,并抛出一个异常,他们会忘记在最后什么超级调用此可能会出现问题.

我想要做的是在基类上创建setUptearDown方法final,然后添加我们自己的注释@Before@After方法.做一些初始测试似乎总是按此顺序调用:

Base @Before
Test @Before
Test
Test @After
Base @After
Run Code Online (Sandbox Code Playgroud)

但我只是担心订单无法保证并且可能会导致问题.我环顾四周,没有看到任何关于这个问题的内容.有谁知道我能做到这一点而没有任何问题吗?

码:

public class IntegrationTestBase {

    @Before
    public final void setUp() { *always called 1st?* }

    @After
    public final void tearDown() { *always called last?* }
}


public class MyTest extends IntegrationTestBase {

    @Before
    public final void before() { *always called …
Run Code Online (Sandbox Code Playgroud)

java installation junit teardown

128
推荐指数
3
解决办法
9万
查看次数

错误:(23,17)无法解决:junit:junit:4.12

为什么每次我在Android Studio中创建一个新项目时,它总是会出现:

错误:(23,17)无法解决:junit:junit:4.12?

当我删除testCompile 'junit:junit:4.12'依赖项时,它不再是一个问题.

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.okedroid.myapplication"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
}
Run Code Online (Sandbox Code Playgroud)

java junit android react-native

128
推荐指数
9
解决办法
25万
查看次数

Java验证void方法使用Mockito调用n次

我正在尝试验证在DAO中调用(void)方法 - 我正在使用一个提交点,该提交点将结果列表发送到该点,重置列表并继续.假设我在列表中有4个东西,并且我的提交点为1,我希望"send"方法被调用4次.我可以通过编写来验证该方法是否被调用一次

Mockito.verify(mock).send()

它通过..但我想验证它被调用的次数.我想是的

Mockito.verify(mock.send(), times(4))

就足够了,但它说参数不正确验证.

顺便说一句,如果我 Mockito.verify(mock).send()改为 Mockito.verify(mock.send())或者 Mockito.verify((mock).send())我得到同样的错误.对此的想法?

java junit unit-testing verify mockito

125
推荐指数
1
解决办法
16万
查看次数

Junit:拆分集成测试和单元测试

我继承了Junit测试的负载,但是这些测试(除了大多数不工作之外)是实际单元测试和集成测试(需要外部系统,db等)的混合.

所以我试图想出一种方法来实际将它们分开,这样我就可以很好地快速运行单元测试,然后进行集成测试.

选项是......

  1. 将它们拆分为单独的目录.

  2. 移至Junit4(从v3开始)并注释类以将它们分开.

  3. 使用文件命名约定来告诉类是什么,即AdapterATest和AdapterAIntergrationTest.

3存在Eclipse可以选择"在所选项目/包或文件夹中运行所有测试"的问题.因此,只需运行集成测试就很难了.

2:冒着开发人员可能开始在单元测试类中编写集成测试的风险,它只会变得混乱.

1:似乎是最好的解决方案,但我的直觉说必须有一个更好的解决方案.

所以这就是我的问题,你如何分解集成测试和适当的单元测试?

testing junit integration-testing unit-testing junit4

124
推荐指数
6
解决办法
5万
查看次数

JUnit与TestNG

在工作中,我们目前仍在使用JUnit 3来运行我们的测试.我们一直在考虑切换到JUnit 4进行新的测试,但我一直在关注TestNG.您对JUnit 4或TestNG有什么经验,对于大量的测试似乎更好?编写测试的灵活性对我们来说也很重要,因为我们的功能测试涵盖了广泛的方面,需要以各种方式编写才能获得结果.

旧的测试不会被重写,因为他们的工作做得很好.我希望在新测试中看到的是测试编写方式的灵活性,自然断言,分组和易于分布的测试执行.

java testing junit testng

120
推荐指数
10
解决办法
4万
查看次数

Mockito如何模拟和断言抛出的异常?

我在junit测试中使用mockito.你怎么做一个异常发生然后断言它有(通用伪代码)

java junit exception-handling mockito

120
推荐指数
10
解决办法
28万
查看次数

"junit.framework中的断言已被弃用" - 接下来有什么用?

我将版本junit升级到4.11并得到:

[WARNING] [deprecation] Assert in junit.framework has been deprecated
[WARNING] [deprecation] Assert in junit.framework has been deprecated
....
Run Code Online (Sandbox Code Playgroud)

如何迁移?

junit junit4

120
推荐指数
5
解决办法
7万
查看次数

JUnit:如何在test utils类中避免"没有runnable方法"

我已经从JUnit3.8切换到JUnit4.4.我使用ant运行我的测试,所有测试都成功运行,但测试实用程序类失败并显示"No runnable methods"错误.我使用的模式是在测试文件夹下包含名称为*Test*的所有类.

我知道跑步者找不到任何用@Test属性注释的方法.但是它们不包含这样的注释,因为这些类不是测试.令人惊讶的是,当在eclipse中运行这些测试时,它并没有抱怨这些类.

在JUnit3.8中,它根本不是问题,因为这些实用程序类没有扩展TestCase,所以跑步者没有尝试执行它们.

我知道我可以在ant脚本中的junit目标中排除这些特定的类.但我不想在我添加的每个新实用程序类上更改构建文件.我也可以重命名课程(但是给课程好名字总是我最弱的人才:-))

这个问题有没有优雅的解决方案?

java ant testing junit

114
推荐指数
7
解决办法
11万
查看次数