小编Min*_*aze的帖子

SpamAssassin Razor2 的置信度始终高于 50%

我准备好了 powermta SMTP。每当我尝试发送 HTML 电子邮件时,Razor2 都会给我 50% 以上的信心。

我尝试了不同的内容,我的 IP 和域都没有列入黑名单。但是 Razor2 总是给我不好的分数,但是如果我发送带有纯文本且没有 html 的电子邮件,则 Razor2 检查通过。我已经正确设置了所有标题,我正在使用 mail-tester.com 查看电子邮件分数。

我的问题是如何改进我的电子邮件以通过 Razor2。我的电子邮件分数和标题在此链接上http://www.mail-tester.com/web-M5O2Ps

smtp spamassassin powermta

5
推荐指数
0
解决办法
2593
查看次数

使用Function.apply的Java泛型

我正在玩Java实用程序功能.我有以下代码:

public class Checker<T>{

  private T value;
  private Function<T, T> callback;

  private Checker(T value) {
    this.value = value;
  }

  public static Checker when(String o) {
    return new Checker<String>(o);
  }

  public static Checker when(int o) {
    return new Checker<Integer>(o);
  }

  public Checker then(Function<T, T> callback) {
    this.callback = callback;
    return this;
  }

  public void execute() {
    if (this.value instanceof String) {
      this.callback.apply("123");
    }
    if (this.value instanceof Integer) {
      this.callback.apply(123);
    }
  }

  Checker.when("123").then(str -> {
    return "";
  }).execute();

  Checker.when(123).then(str -> {
    return …
Run Code Online (Sandbox Code Playgroud)

java lambda function java-8

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

如何创建Single.just(Void)

我正在为我的应用程序编写一些单元测试用例。我想模拟MongoClient update方法,但是更新返回Single<Void>

when(mongoClient.rxUpdate(anyString(), any(JsonObject.class), any(JsonObject.class)))
.thenReturn(Single.just(Void))
Run Code Online (Sandbox Code Playgroud)

现在Single.just(Void)不起作用,正确的方法是什么?


-更新-

所以我正在编写updateUserProfile方法的单元测试,为此我已经嘲笑了service。但是service.updateAccount方法返回是我无法模拟的。

//Controller class
public void updateUserProfile(RoutingContext routingContext){
        // some code
    service.updateAccount(query, update)
            .subscribe(r -> routingContext.response().end());
}

//Service Class
public Single<Void> updateAccount(JsonObject query, JsonObject update){
    return mongoClient.rxUpdate("accounts", query, update);
}
Run Code Online (Sandbox Code Playgroud)

因为的返回类型mongoClient.rxUpdateSingle<Void>,所以我无法模拟该部分。

现在,我已经解决的解决方法是:

public Single<Boolean> updateAccount(JsonObject query, JsonObject update){
    return mongoClient.rxUpdate("accounts", query, update).map(_void -> true);
}
Run Code Online (Sandbox Code Playgroud)

但这只是做事的拙劣方式,我想知道如何才能准确地创建 Single<Void>

junit unit-testing java-8 vert.x rx-java

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

使用Guice for JUnit测试将字符串注入类中

我有一种情况需要测试一个函数,但是类已经注入了String值,如下所示:

public class SomeClass{
    @Inject
    @Named("api")
    private String api;

    public Observable<String> get(String uuidData){
        //do something with "api" variable
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我如何从我的JUnit测试用例中注入这个?我也在使用Mockito,但它不允许我模仿原始类型.

java junit dependency-injection guice

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

MemoryRouter TypeError:无法读取未定义的属性"pathname"

我有一个redux容器,我想在我的测试用例中安装.它有一个使用react-router链接的组件.在阅读本https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/testing.md后,安装容器给我带来了历史未定义的错误我现在实现了MemoryRouter历史错误消失了,但我收到以下错误:

TypeError: Cannot read property 'pathname' of undefined
      at Object.createPath (node_modules/history/PathUtils.js:47:26)
      at Link.render (node_modules/react-router-dom/Link.js:76:44)
Run Code Online (Sandbox Code Playgroud)

我的测试用例:

it('should load popup component', () => {
    const container = mount(
        <Provider store={ store }>
            <MemoryRouter initialIndex='2' initialEntries={ ['/', 'home'] } >
                <HomeContainer />
            </MemoryRouter>
        </Provider>
    );
    assert.equal(container.find('PopUp').length, 1, 'Popup component is not mounted');
});
Run Code Online (Sandbox Code Playgroud)

我的组件:

class Home extends Component {
    componentWillMount() {
        this.props.init();
    }

    componentDidMount() {
        document.title = 'Home';
    }

    render() {
        return (
            <div>
                <Popup />
            </div>
        );
    }
}
export …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router enzyme react-redux

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

Java 8链lambda

我正在玩java lambdas,这是我目前的代码:

public class TypeChecker<T> {
    private T value;
    private Class clazz;
    private UnaryOperator<T> callback;

    private TypeChecker(T value) {
        this.value = value;
    }

    public static TypeChecker<String> when(String v) {
        return new TypeChecker<>(v);
    }

    public static TypeChecker<Integer> when(int v) {
        return new TypeChecker<>(v);
    }

    public TypeChecker<T> is(Class clazz) {
        this.clazz = clazz;
        return this;
    }

    public TypeChecker<T> then(UnaryOperator<T> callback) {
        this.callback = callback;
        return this;
    }

    public void execute() {
        if (clazz.isInstance(value)) {
            callback.apply(value);
        }
    }
}

TypeChecker.when("123").is(String.class).then(s -> {
    return …
Run Code Online (Sandbox Code Playgroud)

lambda java-8

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

java.util.logging.SimpleFormatter.format毫秒

我正在使用JUL进行日志记录,我有一个属性文件.我想在日志文件中以毫秒为单位记录日期时间.

这是我的财产:

java.util.logging.SimpleFormatter.format=%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%n
Run Code Online (Sandbox Code Playgroud)

以上记录如下:

Dec 05, 2016 5:08:06 PM ...
Run Code Online (Sandbox Code Playgroud)

我怎么能显示毫秒?

java logging date java.util.logging

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

RXJava 保留先前 flatMap 的返回值

在 RX JAVA(java8) 中,如何保留 previousflatMapmap.

public void createAccount(]) {
    JsonObject payload = routingContext.getBodyAsJson();
    socialService.getOAuthToken(payload)
            .flatMap(token -> {
                return getAllAccounts(token);
            })
            .flatMap(accounts -> {
                // Save accounts with TOKENS
            })
            .subscribe(accountID -> {
                  response(accountID);
            );
}
Run Code Online (Sandbox Code Playgroud)

所以在上面的代码中,第二步flatMap我怎样才能token从之前的flatMap.

java rx-java

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

Vertx线程阻止了警告

我在ubuntu服务器上运行vert.x应用程序.它有一个在端口3000上运行的HTTPServer.应用程序工作正常但有时我看到以下警告:

Dec 08, 2017 1:23:43 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 138013 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:255)
    at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
    at sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.java:441)
    at sun.security.provider.NativePRNG$RandomIO.access$500(NativePRNG.java:331)
    at sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.java:226)
    at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
    at io.vertx.ext.auth.PRNG.lambda$null$0(PRNG.java:78)
    at io.vertx.ext.auth.PRNG$$Lambda$204/767088095.handle(Unknown Source)
    at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:271)
    at io.vertx.core.impl.ContextImpl$$Lambda$206/1202956360.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Dec 08, 2017 1:23:44 AM io.vertx.core.impl.BlockedThreadChecker
WARNING: Thread Thread[vert.x-worker-thread-2,5,main] has been blocked for 139014 ms, time limit is 60000
io.vertx.core.VertxException: Thread blocked
    at java.io.FileInputStream.readBytes(Native Method)
    at …
Run Code Online (Sandbox Code Playgroud)

vert.x

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