gpt4 book ai didi

c# - C# Prime Factors Kata 中的单元测试失败

转载 作者:太空狗 更新时间:2023-10-30 00:31:17 26 4
gpt4 key购买 nike

资深程序员,C# 新手。刚开始使用 VS2012 和内置测试框架进行 Prime Factors Kata。在第一次测试中,预期和实际匹配,但它被标记为失败。任何人都可以解释为什么,更重要的是解决方法是什么?

using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace PrimeFactorsKata
{
[TestClass]
public class UnitTest1
{
private static List<int> ExpectedList()
{
return new List<int>();
}

[TestMethod]
public void TestOne()
{
Assert.AreEqual(ExpectedList(), PrimeFactorGenerator.Generate(1));
}
}

class PrimeFactorGenerator
{
public static List<int> Generate(int n)
{
return new List<int>();
}
}
}

输出:

Assert.AreEqual failed. 
Expected:<System.Collections.Generic.List`1[System.Int32]>.
Actual:<System.Collections.Generic.List`1[System.Int32]>.

at PrimeFactorsTest.UnitTest1.TestOne() in UnitTest1.cs: line 17

最佳答案

正如其他人所提到的,您正在比较每个列表的引用,它们是不同的。要比较内容,您可以使用 CollectionAssert.AreEqual

[TestMethod]
public void TestOne()
{
CollectionAssert.AreEqual(ExpectedList(), PrimeFactorGenerator.Generate(1));
}

您还可以在 CollectionAssert 上查看其他方法喜欢AreEquivalent

还有对每一个的重写,允许您传递 IComparer 以确定您希望如何比较集合中的项目。

关于c# - C# Prime Factors Kata 中的单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28073950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com