nul*_*eph 6 .net unit-testing moq
我有一个实现 IQueryResult 并生成 DTO 的公共类。它有一个公共name领域。我创建它只是为了弄清楚发生了什么。这看起来很简单,但我不断收到下面的错误。知道发生了什么事吗?
ProjectsControllerTests.cs(40, 21): [CS0029]
Unit\ProjectsControllerTests.cs(40,21): error CS0029:
Cannot implicitly convert type 'Moq.Mock<...Queries.Results.Woot>'
to '....Queries.Results.Woot'
Run Code Online (Sandbox Code Playgroud)
//类Woot
public class Woot : IQueryResult
{
public Woot(string name)
{
Name = name;
}
public string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
// 在测试类中声明
private static Woot _woot;
Run Code Online (Sandbox Code Playgroud)
// 在SetupClass中模拟
_woot = new Mock<Woot>();
Run Code Online (Sandbox Code Playgroud)
Nko*_*osi 13
该错误表明您正在尝试分配Mock<Woot>给Woot变量。
虽然这感觉像是一个XY 问题,但如果您想要模拟对象,您可以调用Mock<T>.Objectproperty
var mock = new Mock<Woot>();
_woot = mock.Object;
Run Code Online (Sandbox Code Playgroud)
或者使用Mock.Of<T>()
_woot = Mock.Of<Woot>();
Run Code Online (Sandbox Code Playgroud)
请参考Moq Quickstart以更好地了解如何使用该框架。
| 归档时间: |
|
| 查看次数: |
7864 次 |
| 最近记录: |