在vs2017中尝试c#单元测试,Moq(二)

本文探讨了在VS2017中使用C#进行单元测试时遇到的挑战,特别是针对爬虫和股票应用。文章介绍了模拟测试的概念,并详细讲解了Moq库的使用,包括方法的返回设置、参数匹配、属性处理、事件处理和回调验证等关键点。
摘要由CSDN通过智能技术生成

但是我发现传统的单元测试不太适合,因为要做爬虫和股票。

网站怎么测试? 股票怎么测试?网络错误怎么测试?

所以查了查资料,发现这世界上有一种称为模拟测试的技术,就是为了应对类似情况。

在这里插入图片描述

方法

using Moq;

// Assumptions:

public interface IFoo
{
   
    Bar Bar {
    get; set; }
    string Name {
    get; set; }
    int Value {
    get; set; }
    bool DoSomething(string value);
    bool DoSomething(int number, string value);
    string DoSomethingStringy(string value);
    bool TryParse(string value, out string outputValue);
    bool Submit(ref Bar bar);
    int GetCount();
    bool Add(int value);
}

public class Bar 
{
   
    public virtual Baz Baz {
    get; set; }
    public virtual bool Submit() {
    return false; }
}

public class Baz
{
   
    public virtual string Name {
    get; set; }
}


// 准备 Mock IFoo 接口
var mock = new Mock<IFoo>(); 
// 配置准备模拟的方法,当调用接口中的 DoSomething 方法,并传递参数 "bing" 的时候,返回 true
mock.Setup(foo => foo.DoSomething("ping")).Returns(true);   

// 方法的参数中使用了 out 参数
// out arguments 
var outString = "ack"; 
// 当调用 TryParse 方法的时候,out 参数返回 "ack", 方法返回 true, lazy evaluated 
mock.Setup(foo => foo.TryParse("ping", out outString)).Returns(true);   

// ref 参数
var instance = new Bar(); 
// 仅仅在使用 ref 调用的时候,才会匹配下面的测试
mock.Setup(foo => foo.Submit(ref
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值