小编sta*_*sal的帖子

NUnit与Assert.AreEqual不兼容

我是单元测试的新手,尤其是NUit.我只是在本书中输入一些引用Java和JUnit的例子.但我正在使用C#代替.

问题是:我有一个带有覆盖方法的类,例如Equals()GetHashCode(),但是当我试图比较这个类的两个对象时,Assert.AreEqual()我的代码没有被调用,所以我得到一个异常.

Assert.True(MyClass.Equals(MyClass2))确实运作良好.但我不想用这种结构代替Assert.AreEqual().问题出在哪里?

这是班级:

public class Money
{
    public int amount;
    protected string currency;

    public Money(int amount, string currency)
    {
        this.amount = amount;
        this.currency = currency;
    }

    public new bool Equals(object obj)
    {
        if (obj == null)
            return false;

        Money money = (Money)obj;
        return (amount == money.amount)
                && (Currency().Equals(money.Currency()));
    }

    public new int GetHashCode()
    {
        return (string.Format("{0}{1}", amount, currency)).GetHashCode();
    }

    public static Money Dollar(int amount)
    {
        return new Money(amount, "USD");
    } …
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing

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

全局设置CDI会话超时

注入@Named bean的所有会话对象是否可以全局设置会话超时?

我有几个@ConversationScoped bean,例如:

import javax.annotation.PostConstruct;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;

@Named
@ConversationScoped
public class SomeBean1 {

    @Inject
    private Conversation conversation;

    @PostConstruct
    private void init() {
        if (conversation.isTransient()) {
            conversation.begin();
        }
    }
}

@Named
@ConversationScoped
public class SomeBean2 {

    @Inject
    private Conversation conversation;

    @PostConstruct
    private void init() {
        if (conversation.isTransient()) {
            conversation.begin();
        }
    }
}        
Run Code Online (Sandbox Code Playgroud)

这些对话的默认超时为600000毫秒.我想知道是否有任何方法可以在全局设置会话的超时,或者我需要在每个bean中设置它

if (!conversation.isTrainsient()) {
    conversation.setTimeout(MY_CUSTOM_TIMEOUT);
}
Run Code Online (Sandbox Code Playgroud)

(问题是有很多CDI bean并且每个人手动设置超时都不是最佳解决方案)

jsf weblogic cdi weld

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

标签 统计

c# ×1

cdi ×1

jsf ×1

nunit ×1

unit-testing ×1

weblogic ×1

weld ×1