Tag: unit testing

如何测试.class文件是否已创建?

我想对我的代码进行unit testing,必须创建一个.java文件来编译它,然后创建相应的.class文件。 如何创建测试以查看是否创建了“.class”文件? 我已经为它的存在添加了测试,现在我正在尝试测试该文件是一个有效的类文件。 我试过了 try { Class.forName(“Hello”); throw AssertError(); } catch( ClassNotFoundException e ) { } program.createClass(); Class.forName(“Hello”); 但我真的不知道如何动态地将创建文件的路径添加到类路径中。 编辑 加载的URL类可以完成工作。 这就是我的测试现在的样子。 @Test void testHello() throws MalformedURLException, ClassNotFoundException { URL[] url = { new URL(“file:/home/oreyes/testwork/”) }; try { new URLClassLoader(url).loadClass(“Hello”); throw new AssertionError(“Should’ve thrown ClassNotFoundException”); } catch ( ClassNotFoundException cnfe ){ } c.process(); new […]

Mockito不能嘲笑这门课

我试图嘲笑一个公共课,但是当这样做时,Mockito抛出一个Mockito cannot mock this classexception。 我想要模拟的类: https : //github.com/scribejava/scribejava/blob/master/scribejava-core/src/main/java/com/github/scribejava/core/builder/ServiceBuilder.java 测试代码: package xyz.jacobclark.adapter; import com.github.scribejava.apis.TwitterApi; import com.github.scribejava.core.builder.ServiceBuilder; import com.github.scribejava.core.model.OAuth1RequestToken; import com.github.scribejava.core.oauth.OAuth10aService; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import java.io.IOException; import static org.hamcrest.Matchers.is; import static org.hamcrest.core.IsInstanceOf.any; @RunWith(MockitoJUnitRunner.class) public class TwitterOAuthAdapterTest { @Mock ServiceBuilder serviceBuilder; @Test public void getRequestTokenShouldReturnAValidRequestToken() throws IOException { class TwitterOAuthAdapter […]

模拟时junit出错

我是Junit的新手,下面是我正在运行的junit代码。 package com.de.base.util.general; import static org.junit.Assert.*; import static org.mockito.Mockito.when; import java.util.HashMap; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.powermock.api.mockito.PowerMockito; @RunWith(MockitoJUnitRunner.class) public class JReportUtilTest { @InjectMocks ReportUtil w_res = new ReportUtil(); @Mock CollectionUtil w_util; @Test public void test_removeHashedSettings() throws Exception { HashMap w_abc = new HashMap(); w_abc.put(“abc”,”89″); //CollectionUtil mock = […]

如何模拟超级引用(超类)?

有时当我编写unit testing时,我应该模拟对超类的引用。 我读过这个问题: 问题 这个答案回答DI建议重构代码。 但我不能 如果超类方法足够大,这个答案另一个答案是不合适的。 在我的情况下,我有非常大的代码。 是的我知道它是SOLID OOD原则,但我应该写测试。 我没有足够的时间进行重构。 4年前问了这个问题! 目前Mockito或Powermock可以解决此问题吗? 更新 代码示例: class BaseService { public void save() { // a lot of code here! I cannot change this code. } } public Childservice extends BaseService { public void save(){ //logic for testing super.save(); //logic for testing } } 更新2 public class […]

从脚本中填充内存hsqldb数据库

有没有办法可以在指向我的内存hsqldb实例的连接字符串中指定一个脚本? 我正在看这篇文章看起来有可能,但我不确定如何正确地制定字符串或在哪里放置脚本文件。 在这里查看 hsqldb文档似乎并非如此。 从Java测试中我可以选择使用它吗? 这与之前的hsqldb问题相关,此处从unit testing开始和停止hsqldb

在tearDown(@After)方法上断言是错误的吗?

我甚至有多个测试用例,如果逻辑不同,输出必须在所有测试用例上相等。 所以我在考虑如何概括它们并仅将Assert方法放置一次。 有没有比这更好的方法: static public class Tests() { private static String expected = null; private String actual = null; @BeforeClass public static void setUpBeforeClass() throws Exception { expected = new String(“My Desired Output”); } @Before public void setUp() { actual = new String(); } @Test public void test1() throws Exception { actual = … } […]

Visual Studio参数化unit testing就像java一样

在java测试环境中我可以使用参数化unit testing,如下面的代码, @RunWith(value = Parameterized.class) public class JunitTest6 { private int number; public JunitTest6(int number) { this.number = number; } @Parameters public static Collection data() { Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } }; return Arrays.asList(data); } @Test public void pushTest() { System.out.println(“Parameterized Number […]

在C#中,Java的默认(包)访问权限相当于什么?

在C#中,Java的默认(包)访问权限相当于什么? 有吗? 反正是否限制对特定命名空间的访问? 问题: 我试图限制对某些方法的访问仅限于我的NUnit测试 – 在JUnit中我会通过使方法包访问并在同一个包中但在src / test / java而不是src / main / java下进行测试来实现这一点。 如何在C#中实现类似的function? 注意:我不能将方法设置为internal因为我的测试是在一个单独的程序集中 – 就像NUnit约定一样 – 或者是它?

如何模拟DriverManager.getConnection(…)?

我有一个类,它连接到H2数据库并运行几个SQL语句。 public class H2Persistence implements IPersistence { private Connection conn; @Override public void open() { try { Class.forName(“org.h2.Driver”); conn = DriverManager.getConnection(CONN_TYPE_USER_HOME); final Statement stmt = conn.createStatement(); stmt.executeUpdate(“CREATE TABLE PERSON(” + “ID BIGINT,”+ “AGEGROUP VARCHAR(255),”+ “MONTHLY_INCOME_LEVEL VARCHAR(255),” + “GENDER VARCHAR(1),”+ “HOUSEHOLD_ID BIGINT)”); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } […]

java – JUnit测试失败钩子上的黄瓜

我们使用Cucumber-JVM来编写验收测试脚本,使用JUnit来执行它们(通过JUnit Cucumber运行器)。 由于这些测试涉及Selenium WebDriver,我希望能够在我的测试失败时获取屏幕截图(我有代码)。 如果我只是添加一个WebDriver onException钩子,断言失败时将不会截取屏幕截图。 我希望能够向Cucumber运行器添加JUnit执行侦听器,但API似乎不支持此function(Cucumber.class上没有addListener方法)。 有人可以帮忙吗? 谢谢团队。