相关疑难解决方法(0)

NUnit的Assert.Equals抛出异常"Assert.Equals不应该用于断言"

我最近尝试在编写新的NUnit测试时使用Assert.Equals()方法.在执行时,这种方法抛出一个AssertionException说明, Assert.Equals should not be used for Assertions. 乍一看这有点莫名其妙.这里发生了什么?

.net nunit

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

比较NUnit中两个对象之间的相等性

我试图断言一个对象与另一个对象"相等".

对象只是具有一堆公共属性的类的实例.是否有一种简单的方法让NUnit基于属性断言相等?

这是我目前的解决方案,但我认为可能有更好的方法:

Assert.AreEqual(LeftObject.Property1, RightObject.Property1)
Assert.AreEqual(LeftObject.Property2, RightObject.Property2)
Assert.AreEqual(LeftObject.Property3, RightObject.Property3)
...
Assert.AreEqual(LeftObject.PropertyN, RightObject.PropertyN)
Run Code Online (Sandbox Code Playgroud)

我想要的是与CollectionEquivalentConstraint一样的精神,其中NUnit验证两个集合的内容是否相同.

c# nunit automated-tests unit-testing

118
推荐指数
8
解决办法
7万
查看次数

NUnit的Is.Equal对于从泛型类派生的类不能可靠地工作吗?

今天我遇到了NUnit的以下问题.

我有一个类,派生自泛型类.我开始做一些序列化测试,并使用NUnit的Is.EqualTo()函数测试相等性.

当一个应该失败的测试通过时,我开始怀疑出现了问题.当我使用obj1.Equals(obj2)而不是它应该失败时.

为了调查我创建了以下测试:

namespace NUnit.Tests

{

using Framework;

    public class ThatNUnit
    {
        [Test]
        public void IsNotEqualTo_ClientsNotEqual_Passes()
        {
            var client1 = new DerrivedClient();
            var client2 = new DerrivedClient();

            client1.Name = "player1";
            client1.SomeGenericProperty = client1.Name;
            client2.Name = "player2";
            client2.SomeGenericProperty = client2.Name;

            Assert.That(client1.Equals(client2), Is.False);
            Assert.That(client1, Is.Not.EqualTo(client2));
        }

        [Test]
        public void IsNotEqualTo_ClientsAreEqual_AlsoPasses_SomethingWrongHere()
        {
            var client1 = new DerrivedClient();
            var client2 = new DerrivedClient();

            client1.Name = "player1";
            client1.SomeGenericProperty = client1.Name;
            client2.Name = client1.Name;
            client2.SomeGenericProperty = client1.Name;

            Assert.That(client1.Equals(client2), Is.True);
            Assert.That(client1, Is.Not.EqualTo(client2));
        }
    }

    public class …
Run Code Online (Sandbox Code Playgroud)

c# generics tdd nunit unit-testing

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

标签 统计

nunit ×3

c# ×2

unit-testing ×2

.net ×1

automated-tests ×1

generics ×1

tdd ×1