标签: junit4

未解决的参考:mockwebserver

我正在使用mockwebserver编写一个测试套件。我从官方 github 页面输入了所有依赖项。每次我尝试运行我收到的测试Unresolved reference: mockwebserver

没有导入选项。进口时的字体不是红色的。Android Studio 不提示任何内容。除了与未解析的引用相关的错误之外,没有其他错误。

截屏: 在此输入图像描述


构建.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id("org.jetbrains.kotlin.android.extensions")
}

android {
    compileSdk 31

    useLibrary("android.test.runner")
    useLibrary("android.test.base")
    useLibrary("android.test.mock")

    defaultConfig {
        applicationId "com.example.moviespotter"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    buildFeatures {
        viewBinding = true
        compose true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.5.21' …
Run Code Online (Sandbox Code Playgroud)

junit4 android-studio okhttp mockwebserver

1
推荐指数
1
解决办法
1581
查看次数

使用junit测试用例显示空指针异常

我正在尝试使用junit测试用例根据工资对员工对象进行排序.

这是我的员工排序课

package day4;
import day4.Employee;
public class EmployeesInfoWithSalary {
    private Employee[] employee;
    private int numberOfEmployees;
public EmployeesInfoWithSalary(Employee[] employee, int numberOfEmployees) {
    super();
    this.employee = employee;
    this.numberOfEmployees = numberOfEmployees;
}

public Employee[] getSortBasedOnSalary() {

    String temp;
    for (int iterator = 0; iterator < numberOfEmployees; iterator++) {
        int minSalary = employee[iterator].getSalary();
        int index = iterator;
        for (int comparator = iterator; comparator < numberOfEmployees; comparator++) {
            if (employee[comparator].getSalary() < minSalary) {
                index = comparator;
                minSalary = employee[comparator].getSalary();
            }

        }

        employee[index].setSalary(employee[iterator].getSalary());
        employee[iterator].setSalary(minSalary);
        temp …
Run Code Online (Sandbox Code Playgroud)

java junit junit4

0
推荐指数
1
解决办法
1662
查看次数

通过命令行在linux中编译Java类

嗨,谢谢你花时间回答我的问题.

我的根文件夹中有两个文件(〜/).Main.Java和TestMain.java.Main.java编译并运行顺利.另一方面,TestMain没有.TestMain基本上是一个测试类,我使用JUnit来处理不同的场景.我在TestMain中实例化Main,但问题是编译器找不到Main.java.

这是代码:

    user@linuxbox ~ $ javac -cp junit-4.10.jar TestMain.java 
    TestMain.java:8: error: cannot find symbol
                Main mainClass = new Main();
                ^
      symbol:   class Main
      location: class TestMain
    TestMain.java:8: error: cannot find symbol
                Main luckyStrings = new Main();
                                                ^
      symbol:   class Main
      location: class TestMain
    2 errors
Run Code Online (Sandbox Code Playgroud)

如何让Main类可用于MainTest.java类?非常感谢!

java compilation junit4

0
推荐指数
1
解决办法
3546
查看次数

Junit中类中多个@Test注释的评估顺序

当你有多个@Test Annotation时,有谁能告诉我Junit中@Test注释的评估顺序是什么?我尝试使用以下示例,但没有找到任何特定的顺序.您可以考虑以下示例来解释您的答案.

package test_Cases;

import org.junit.Test;

public class First_test_case {
    @Test
public void apsTest(){
    System.out.println("THIS IS FIRST TEST CAES.");
    //selenium code
}
@Test
public void appletestTest(){
    System.out.println("THIS IS second TEST CAES.");
    //selenium code
}
@Test
public void aboutestTest(){
    System.out.println("THIS IS third TEST CAES.");
    //selenium code
}

@Test
public void dtestTest(){
    System.out.println("THIS IS fourth TEST CAES.");
    //selenium code
}@Test
public void etestTest(){
    System.out.println("THIS IS fifth TEST CAES.");
    //selenium code
}@Test
public void ftestTest(){
    System.out.println("THIS IS sixth TEST CAES.");
    //selenium code
} …
Run Code Online (Sandbox Code Playgroud)

junit junit4 junit3

0
推荐指数
1
解决办法
733
查看次数

Junit Test测试Mule Flow中的Http Outbound端点

我有一个基本的Mule ESB应用程序,其基本流程如下:"Http入站端点(请求 - 响应模式) - >记录器 - > HTTP出站端点(请求 - 响应模式) - > Java组件"

查询:如何编写junit测试用例来测试上述流程.可以看出,我有一个HTTP出站端点(请求 - 响应模式),它指的是一些大型应用程序,它执行大量处理然后返回响应.我是否会模拟此HTTP出站端点?我不想单独测试HTTP出站端点(请求 - 响应模式).我想对整个流程进行junit测试.

提前致谢.Jai Shammi Raj Kulkarni

unit-testing esb junit4 mule mule-studio

0
推荐指数
1
解决办法
2565
查看次数

使用ivy的ant 1.9中的junit任务失败,出现junit.framework.AssertionFailedError:未找到测试

我有一个基于ant和ivy的项目,并且我还使用ivy来加载依赖项。由于某些原因,使用ant 1.9时,这些项目之一已开始报告一个奇怪的失败:

junit.framework.AssertionFailedError: No tests found in name.of.my.Clazz
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在类中使用JUnit4 @Test批注来批注测试方法,因此应该找到很多测试用例。

java ant junit ivy junit4

0
推荐指数
1
解决办法
363
查看次数

我可以混合使用JUnit 3和JUnit 4吗?

我正在编写一些JUnit测试,它们从第三方库扩展了一个类.超类扩展TestCase,所以根据定义,我的子类也是如此.

在我的子类中,我用前缀编写测试方法,test然后执行这些方法.

但是,出于多种原因,我们希望转移到JUnit 4(其中一个原因是我们不希望将测试方法作为前缀test)

我尝试使用JUnit 4 @Test注释编写新测试,但这些方法不会被执行.
例如:

public abstract class UtilityClassFromThirdPartyLibrary extends TestCase {

}

public class MyTestClass extends UtilityClassFromThirdPartyLibrary {

    public void testThisMethodIsInvokedBecauseItStartsWithTest {
    }

    @Test
    public void thisMethodDoesNotGetInvoked {
    }
}
Run Code Online (Sandbox Code Playgroud)

不扩展第三方测试类不是一种选择.(对于它的价值,它是Spring,它AbstractXmlFlowExecutionTests反过来扩展了其他Spring类,最终扩展TestCase.超类中的方法提供了如此多的设置和样板,没有扩展它们只是为了使用JUnit 4会适得其反)

如上所述,我们使用JUnit 4 @Test注释的动机之一是它允许我们更好地命名我们的方法.我们的观点是这个词test是多余的,因为该类显然是一个测试类,并且该方法带有注释@Test.我们以BDD样式编写测试,因此我们的测试方法名称描述了被测单元应该做什么 - 我们的命名约定是public void shouldDoSomething()

有没有人知道是否有可能混合' TestCase使用JUnit 4的方法扩展JUnit 3的''匹配测试类@Test?如果是这样,怎么样?

谢谢
内森


我已经看到了几个与问题相关的SO问题,但它们与Android或测试套件有关,因此与我的问题不完全相同.EG:
可以混合JUnit3和JUnit4吗?
/sf/ask/2267533131/

java junit4 junit3

0
推荐指数
1
解决办法
846
查看次数

在JUnit中打印测试结果

目前,我将测试用例重复两次,因此如何将结果打印为2个单独的结果。

我尝试使用内置函数创建文本,但是,它现在确实显示“成功”或“失败”。

目前,我有以下代码:

public class UnitTestRunner {
    static JUnitCore junitCore;
    static Class<?> testClasses;

    public static void main(String[] args) {
        System.out.println("Running Junit Test Suite.");
        Result result = JUnitCore.runClasses(TestSuite.class);
        for (Failure failure : result.getFailures()) {
            System.out.println(failure.toString());
        }
        System.out.println("Successful: " + result.wasSuccessful() +
            " ran " + result.getRunCount() + " tests");
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码可以正常工作,但是我不知道如何在JUnit中实现它。

有人可以帮忙演示一下如何将此代码实现到JUnit测试用例中。

java junit junit4

0
推荐指数
1
解决办法
4732
查看次数

如何将JUnit测试编写到Spring-MVC Controller类中?

我想为我的UserController课程写一个JUnit测试(Java单元),但是我不知道该怎么做。

UserController:

@RestController
@RequestMapping(CompositeController.ENTRY)
public class UserController {
protected final static String ENTRY = "/demo/v1/composite";
private UserService userService;

@Autowired
public UserController(UserService userService) {
    this.userService = userService;
}


 @GetMapping(path = "/isadmin")
 public ResponseEntity<Boolean> checkadmin(@RequestHeader String nickname){

 return userService.checkifadmin(nickname);

 }
Run Code Online (Sandbox Code Playgroud)

UserService:

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

@Service
public interface UserService {
ResponseEntity<Boolean> checkifadmin(String nickname);
}
Run Code Online (Sandbox Code Playgroud)

UserServiceImpl:

public class UserServiceImpl implements UserService {

 private final String userBaseAdress = "http://localhost:7777";
 private final String userBasePath = "/demo/v1/user";

 public ResponseEntity<Boolean> checkifadmin(String nickname) {          
        HttpHeaders headers …
Run Code Online (Sandbox Code Playgroud)

java junit spring-mvc junit4

0
推荐指数
1
解决办法
822
查看次数

如何验证多次调用的方法

我正在研究JUNIT,在这里我需要验证一种方法是否被调用。所以我添加了下面的代码

verify(mock).method();
Run Code Online (Sandbox Code Playgroud)

当我运行时,我低于异常

org.mockito.exceptions.verification.TooManyActualInvocations: 
mock.method();
Wanted 1 time:
But was 36 times:
Run Code Online (Sandbox Code Playgroud)

我知道它被调用了36次,但只想调用一次。帮助我解决此问题

junit4 mockito

0
推荐指数
1
解决办法
73
查看次数