小编Fra*_*ina的帖子

LambdaMetafactory的Java访问bean方法

我的问题与 该线程中显式使用LambdaMetafactory密切相关,提供了一些非常好的例子来使用LambdaMetafactory访问类的静态方法; 但是,我想知道访问现有bean实例的非静态字段的等效代码是什么.似乎很难找到一个例子,我所执行的每一次尝试都以非工作代码结束.

这是bean代码:

class SimpleBean {
    private Object obj= "myCustomObject";
    private static Object STATIC_OBJECT = "myCustomStaticObject";
    public Object getObj() {
        return obj;
    }
    public void setObj(final Object obj) {
        this.obj = obj;
    }
    public static Object getStaticObj() {
        return STATIC_OBJECT;
    }
    public static void setStaticObj(final Object obj) {
        STATIC_OBJECT = obj;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是一个成功访问静态方法"getStaticObj()"的工作单元测试:

    @Test
public void accessStaticMethod() throws Throwable
{
    MethodHandles.Lookup caller = MethodHandles.lookup();
    Method reflected = SimpleBean.class.getDeclaredMethod("getStaticObj");
    MethodHandle methodHandle = caller.unreflect(reflected);
    CallSite site = LambdaMetafactory.metafactory(caller, …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

NGXS:如何测试一个动作是否被分派?

如何单元测试一个动作是否被分派?

例如,在 LogoutService 中,我有这个简单的方法:

  logout(username: string) {
    store.dispatch([new ResetStateAction(), new LogoutAction(username)]);
  }
Run Code Online (Sandbox Code Playgroud)

我需要编写一个单元测试来验证这两个操作是否已调度:

  it('should dispatch ResetState and Logout actions', function () {
    logoutService.logout();

    // how to check the dispactched actions and their parameters?
    // expect(...)
  });
Run Code Online (Sandbox Code Playgroud)

我如何检查分派的动作?

unit-testing angular ngxs

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

如何从相对路径使用动态链接库

我想使用 go 应用程序中的动态 C 库,我可以构建应用程序,但在运行时找不到该库。这是我的项目的结构:

src/ctest/
      |- lib/
      |    |- libmylib.so
      |    |- libmylib.h
      |- main.go
Run Code Online (Sandbox Code Playgroud)

在 main.go 中,我导入 .h 和 .so 文件:

/*
#cgo CFLAGS: -I./lib
#cgo LDFLAGS: -L./lib -lmylib
#include <mylib.h>
*/
import "C"

func main() {
    C.testMyLib()
}
Run Code Online (Sandbox Code Playgroud)

我可以成功构建应用程序,但启动时会抛出此错误:

error while loading shared libraries: libmylib.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我将 libmylib.so 文件复制到 /usr/lib 中,那么一切都会按预期工作;但是,我希望我的应用程序在运行时自动在 CURRENT_PATH/lib 中搜索所需的库,而无需设置环境变量。我怎样才能实现它?

go

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

标签 统计

angular ×1

go ×1

java ×1

java-8 ×1

lambda ×1

ngxs ×1

unit-testing ×1