小编Dav*_*d S的帖子

JUnit - 在@Before中一次启动的字段在测试中为null

就像标题所说,即使我已经在@Before方法中将它们作为一次性设置启动,我仍然会在测试用例中获得无效的字段.唯一的例外是第一个运行的测试有效.

我能够使用以下代码复制行为:

public class NetworkTest extends TestCase{
    private static Boolean oneTimeSetUpDone = false;
    private Client client;

    @Before
    public void setUp(){
        if(!oneTimeSetUpDone){
            client = new Client();

            oneTimeSetUpDone = true;
        }   
    }

    @Test
    public void testConnection(){
        System.out.println(client);
        assertFalse(true);
    }

    @Test
    public void testMultiConnection(){
        System.out.println(client);
        assertFalse(true);
    }
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了什么或为什么在第一次测试运行后字段会被清除?

java junit

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

从现有的一次创建新的类实例?

我有一个指向基类foo的指针向量,它有几个子类,我想要做的是基于它是哪个子类,创建一个同一个实例的新类.

我之前通过一个巨大的for循环解决了它,它使用typeid找出它是什么类但是没有办法以更一般的方式解决它?

基本上,我正在寻找这样的东西:

std::vector<foo*> a;
std::vector<foo*> b;

//Store a couple of classes in a and b

b[0] = new typeid(a[0]).name();
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

在对新的条件调用时调用delete

假设我有以下课程:

foo{
    ~foo();

    private:
        char *bar;
};
Run Code Online (Sandbox Code Playgroud)

在某些条件下,bar会创建一个新的char数组,那么处理删除它的正确方法是什么?一个简单的布尔会做或者会被认为是不好的做法吗?

c++ delete-operator

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

Erlang:在guard语句中匹配字符串

最近开始使用erlang并遇到上面的问题,你如何在一个守卫声明中比较两个字符串?试过字符串:等于(x,y)的方法,但无法让它在一个守卫内部工作.

string erlang string-matching

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

Java Swing - 修改 GridBagConstraints

我在 GridBagLayout 中有两个 JPanel,一个画布和一个工具箱,如果用户点击工具箱面板,我希望它改变大小(基本上是打开它)。有没有一种(更智能的)方法来修改工具箱约束的权重,而不必从父面板中删除所有组件并重新添加画布和工具箱但修改了约束?

java swing gridbaglayout

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