小编anh*_*ppe的帖子

如何使用googletest失败进入断点

我最近使用命令行选项gtest_break_on_failure或定义了GTEST_BREAK_ON_FAILURE环境变量,从googletest中发现了" 失败到断点"选项.

我用gtest_break_on_failure尝试了一下.从命令行,我看到没有效果(说实话,我有一瞥希望VS2010将被注册为调试器,并以某种方式神奇地弹出并指向错误源).

在VS环境中将其用作命令行参数,失败的断言触发了中断,但调用堆栈未包含导致失败的测试方法.我找到了步骤(F10)的工作,直到我到达我的测试代码,但这似乎并不方便.

是否可以在命令行中使用该选项?

有人建议如何在环境中获得正确的调用堆栈吗?

c++ debugging unit-testing googletest visual-studio

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

C++ 11 lambdas和方括号

看看这个示例lambda:

[](int factor)->int{return factor*factor;}
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释一下C++ 11 lambda表达式前面的方括号是什么有用吗?

c++ syntax lambda c++11

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

FILE何时刷新?

我在Windows下有一个很好的旧C FILE文件描述符,输出流使用它来写入数据.我的问题很简单,但我找不到答案:

假设我不调用fflush,内容何时被刷新到光盘?

流不断接收数据,似乎内容经常被刷新,但刷新它的规则是什么?

c c++ windows libc fflush

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

在Android应用中存储着色器代码的位置

我从Android(5.0.1),API级别19开始使用OpenGL ES2.0.我应该在哪里存储着色器代码?第一个示例将着色器直接编码为字符串.

我想将着色器代码放在一个单独的文件中以获得更好的可用性.存储和加载顶点和片段着色器的最佳实践是什么?

shader android opengl-es opengl-es-2.0

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

在googlemock中匹配自定义类型的参数

我在使用google mock将函数参数与特定对象匹配时遇到问题.

请考虑以下代码:

class Foo
{
public:
    struct Bar
    {
        int foobar;
    }

    void myMethod(const Bar& bar);
}
Run Code Online (Sandbox Code Playgroud)

现在我有一些测试代码,它看起来像这样:

Foo::Bar bar;
EXPECT_CALL(fooMock, myMethod(Eq(bar));
Run Code Online (Sandbox Code Playgroud)

所以我想确保在调用Foo :: myMethod时,参数看起来像我本地实例化的bar对象.

当我尝试这种方法时,我收到如下错误消息:

gmock/gmock-matchers.h(738): error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const Foo::Bar' (or there is no acceptable conversion)
Run Code Online (Sandbox Code Playgroud)

我尝试使用Eq(ByRef(bar))来定义operator ==和!=(至少==都是自由函数的成员),但我无法解决问题.唯一有用的是使用

Field(&Foo::Bar::foobar, x) 
Run Code Online (Sandbox Code Playgroud)

但这样我必须检查我的结构中的每个字段,这似乎是很多打字工作......

c++ googlemock

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

使用boost :: gil绘制线条?

我需要在(离屏)图像上绘制一些线条.我想使用boost :: gil,因为lib已经集成在我的项目中.

我想在2dim数组中从头到尾绘制一条线

任何人都可以给我一个快速的例子,说明如何使用gil绘制一条线?

谢谢.

c++ drawing boost 2d boost-gil

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

使用Moq实例引发EventHandler <TEventArgs>事件

我有接口

public interface IBar
{

}
Run Code Online (Sandbox Code Playgroud)

public interface IFoo
{
    event EventHandler<IBar> MyEvent;
}
Run Code Online (Sandbox Code Playgroud)

和一个班级

public class Foobar
{
    public Foobar(IFoo foo)
    {
        foo.MyEvent += MyEventMethod;
    }

    private void MyEventMethod(object sender, IBar bar)
    {
        // do nothing
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想用Moq 4对这段精彩的代码进行单元测试:

[Test]
public void MyTest()
{
    Mock<IFoo> foo = new Mock<IFoo>();
    Mock<IBar> bar = new Mock<IBar>();

    Foobar foobar = new Foobar(foo.Object);

    foo.Raise(e => e.MyEvent += null, bar.Object);
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,Foobar.MyEventMethod应该通过加注来调用.发生的事情是我得到一个运行时异常,说明System.Reflection.TargetParameterCountEception {"参数计数不匹配."}.

有趣的是:当我在单元测试中提出以下内容时:

foo.Raise(e => e.MyEvent += null, EventArgs.Empty, bar.Object);
Run Code Online (Sandbox Code Playgroud)

一切都按我的意愿运作.任何人都可以解释为什么呼叫需要三个参数? …

c# unit-testing moq

5
推荐指数
2
解决办法
5471
查看次数

在tr1 :: shared_ptr的向量中查找元素

我已将自定义类型"MyType"包装在智能指针中:

tr1::shared_ptr<MyType>
Run Code Online (Sandbox Code Playgroud)

并从中制作了一个矢量:

vector<shared_ptr<MyType>>
Run Code Online (Sandbox Code Playgroud)

现在我想在该向量std::find中输入一个类型的对象MyType但是因为我需要的类型不能shared_ptr<MyType>.

有优雅的方式吗?谢谢

更新:为什么不std :: find_if:std :: find的使用非常紧凑.我认为为find_if实现一个方法或仿函数会是一个太大的开销.

c++ boost stl find shared-ptr

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

C++方法只有返回类型(和const)的'constness'不同

我偶然发现了一些我以前从未见过的东西.考虑一下你有以下课程:

class foo
{
    const bar* get() const;
    bar* get();
}
Run Code Online (Sandbox Code Playgroud)

foo的客户端如何决定使用哪种get()方法?

c++ overloading const

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

为什么我可以在方法中使用“this”

好的,这是一个非常基本的问题。

我可以在 C++ 方法/成员函数中使用this指针的真正原因是什么?

换句话说:当我有

class foo
{
    void bar();
}
Run Code Online (Sandbox Code Playgroud)

为什么我可以使用

void foo::bar()
{
    this->...
}
Run Code Online (Sandbox Code Playgroud)

我可以想象两种可能性:

  1. 它是某种自动创建的成员变量吗
  2. 它作为参数传递给每个方法(因此每个方法都由该参数自动扩展)

c++ methods

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