在项目中定义了自定义的验证器,代码如下:
export function myValidator(minNum): ValidatorFn {
return (control: AbstractControl) => {
let flag = true;
if (control.value < minNum && control.value > 0) {
flag = false;
}
return !flag ? { 'myValidator': { value: control.value } } : null;
};
}
表单formgroup使用了Mock,所以自定义验证器代码没有被覆盖。如何为自定义验证器ValidatorFn写单元测试呢?如何Mock自定义验证器ValidatorFn呢?我是这么做的。
首先import自定义验证器:
import { TestComponent, myValidator } from './test.component';
单元测试代码如下:
it('myValidator not return null', () => {
expect(myValidator(50)(<AbstractControl>{
value: 20
})).toEqual({ 'myValidator': { value: 20 } });
});
it('myValidator return null', () => {
expect(myValidator(50)(<AbstractControl>{
value: 0
})).toEqual(null);
});
大家根据自己实际情况操作吧。如有更好的方法,留言告诉我,谢谢了。
3

站心网
在项目中定义了自定义的验证器,代码如下:export function myValidator(minNum): ValidatorFn { return (c..
为您推荐
.NET C# 单元测试 mock File.Exists的返回值
.NET
2025年03月15日
在 .NET 单元测试中,使用 Moq 来模拟 File.Exists 方法的返回值,可以这样做:1. 使用 Mock<FileSystem>(推荐).NET 提供了 System.IO.Abstractions 库,你可以使用 Mock<IFileSystem> 来替代 File,这样更符合依..
强大的 .NET Mock 框架 单元测试模拟库Moq使用教程
程序笔记
2024年10月22日
单元测试是确保代码质量和可靠性的重要手段。当我们的代码依赖于外部系统、数据库或第三方服务时,编写有效的单元测试可能会变得复杂且耗时。为了简化这一过程,模拟(Mocking)技术应运而生。在 .NET 生态系统中,M..
Angular UT 模拟执行setTimeout
程序笔记
2024年10月21日
在 Angular 单元测试中,我们经常需要模拟异步操作,比如 setTimeout。提高测试速度: 真实环境下的 setTimeout 会阻塞测试,导致测试运行时间过长。确保测试的可靠性: 模拟 setTimeout 可以让我们更好地控制异步操..
Angular Mock 一个类的静态方法
程序笔记
2024年10月21日
理解 Angular Mock 和 静态方法在 Angular 单元测试中,Angular Mock 是一个强大的工具,它允许我们模拟和替换 Angular 的服务、组件和其他依赖项。而静态方法 是属于类本身,而不是类的实例的方法。它们可以直接通..
ASP.NET生成图片验证码
程序笔记
2024年10月20日
今天开始做一个新项目,包含完整的注册登陆流程,在登陆时需要输入验证码防止暴力破解。 制作思路是这样的: 准备使用handler一般处理程序来写,先随机从0-9和A-Z里随机取4个数字,将内容保存在Session中供验证时使..
MVC4统一验证用户登陆和权限
程序笔记
2024年10月19日
我们可以自己写个类,用来做登陆权限验证,例如创建一个WebAuth.cs类,继承AuthorizeAttribute类, 在该类中重写方法: public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAutho..
Attribute特性封装通用数据验证
程序笔记
2024年10月15日
在接口接收数据或者数据库写入的时候一般都会进行数据验证。如果在接收到数据或者插入的时候对对象的每个属性进行检验,代码会很臃肿,而且无法复用,通过Attribute特性可以优雅地进行数据验证。例如我们写一个特性..
jwt是什么?.NET Core API如何使用JwtBearer验证
程序笔记
2024年10月12日
JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

Blazor 框架支持表单并提供内置的输入组件:绑定到使用数据注释的模型的 EditForm 组件内置输入组件我们可以把Model绑定到EditForm的Model属性,然后使用Model属性的数据注释验证表单。启用数据注释验证需要 DataAnn..
.NET attribute 验证两个字段相同
程序笔记
2024年10月11日
在 .NET MVC 中,你可以通过自定义验证特性来验证两个字段是否相同。下面是一些步骤来实现这个功能:创建一个自定义的验证特性类,如下所示:using System.ComponentModel.DataAnnotations;public class CompareFiel..
Blazor使用内存中状态容器服务保存和验证登陆状态
程序笔记
2024年10月11日
想用Blazor做一个简单的登录验证。模式是render-mode="ServerPrerendered"。在登录页面登录成功后需要保存类似.NET MVC网站的服务端session的状态。网上一些简单的做法是登录成功后把用户信息存在LocalStorage或者Se..

最新OpenAI ChatGPT注册手机验证图文教程亲测可用
程序笔记
2024年10月06日
Chat GPT由人工智能公司Open AI于近日推出,其对自己的定义是优化对话的语言模型,非常可惜它不支持中国大陆用户的注册。但是,我们仍然有办法可以在第一时间体验到这个超强 AI。下面的图文教程教大家如何完成注册 C..

ChatGPT手机号验证码接码平台sms-activate使用方法
程序笔记
2024年10月06日
注册ChatGPT需要验证手机号后才能正常使用,但是不支持中国地区只能使用国外手机号注册,可以通过接码平台sms-activate.org得到一个虚拟手机号并且接受注册码,费用很便宜支持国内的支付宝付款。操作步骤如下:注册..

类似sms-activate的国外手机验证码接码平台
程序笔记
2024年10月04日
很多网站需要通过手机验证码才能注册成功,例如最近大火的ChatGPT的官网OpenAI只能使用国外手机号注册。这里推荐几个可以接收国外手机验证码的平台。sms-activatehttps://sms-activate.org/cn站点推荐:ChatGPT手机..

百度文心一言邀请码如何获得?
程序笔记
2024年10月04日
3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

免费申请SSL证书的网站教程推荐
程序笔记
2024年10月04日
现在有很多平台可以申请的免费SSL证书让你的网站提供https服务。一些云服务器平台可能也会有一些免费SSL证书的服务。免费SSL证书安全吗?免费SSL证书可以使用,并且在许多情况下是足够安全的。免费SSL证书可以通过Le..

react使用echart图文教程
程序笔记
2024年10月04日
可以参考ECharts官网的文档:https://echarts.apache.org/handbook/zh/basics/import在React中使用ECharts可以通过以下步骤:安装ECharts库使用npm或者yarn安装ECharts库:npm install echarts --save引入ECharts库..

量化炒股的原理是什么?量化交易策略有哪些?
程序笔记
2024年10月04日
量化炒股是一种利用计算机程序和数学模型来进行投资决策的方法。它的原理是通过分析历史市场数据、价格走势、技术指标等多种因素,构建数学模型,用以预测未来股市走势和行情。这些模型能够自动执行交易,以实现更高..

头条搜索站长工具网站提交
程序笔记
2024年10月04日
头条搜索站长平台官网地址:https://zhanzhang.toutiao.com/头条站长是一款提供网站分析和优化建议的工具,可以帮助站长了解其网站的流量情况、用户行为、页面质量等信息,以便对网站进行优化和改进。它的功能和百度..
类似ChatGPT的AI产品有哪些?
程序笔记
2024年10月04日
在自然语言处理领域,有一些可以替代ChatGPT的工具和框架,以下是一些比较流行的:Transformer-XL:Transformer-XL是由CMU和Google共同开发的自然语言处理模型,具有较好的上下文理解能力和处理长文本的能力。该模型..