我通常使用SQL Server 2012 Management Studio从"bak"文件还原SQL Server数据库.我通过覆盖现有数据库来做到这一点.在"选项"页面中,有一个标记为"关闭与目标数据库的现有连接"的复选框,我主要检查它,因为目标数据库始终"正在使用",即使我刚刚重新启动MS SQL服务而且我是确保没有使用它的应用程序.
无论如何,在我客户的计算机上,我看到关闭现有连接的复选框是灰色的,没有任何信息.这是怎么发生的?谷歌搜索没有产生任何结果.
我的 React 组件中有这个代码,它最终呈现一个 HTML:
new Date(createDate).toLocaleDateString()
Run Code Online (Sandbox Code Playgroud)
我的本地计算机和我们的构建计算机设置了不同的区域设置,因此该函数的结果不一致。因此,正如您所期望的,单元测试在我的机器上通过,但在构建机器上失败,反之亦然。
我想模拟“toLocalDateString”,以便它始终使用相同的区域设置,例如“en-US”,或者至少它始终返回相同的字符串。我们的测试框架是个笑话。我如何实现这个目标?
我在我的 test.spec.js 中尝试了这个,但它根本没有任何效果:
Date.prototype.toLocaleDateString = jest.fn().mockReturnValue('2020-04-15')
expect(component).toMatchSnapshot()
Run Code Online (Sandbox Code Playgroud)
我仍然在快照中得到相同的旧 toLocalDateString 实现,但不考虑我的模拟返回值。
如何访问我的 React 组件中SelectField命名的值countryCode?用例是验证方案应根据 countryCode 更改。
<Formik
onSubmit={(values, actions) => this.onSubmit(values, actions.setFieldError)}
validationSchema={() => this.registrationValidationSchema()}
enableReinitialize={true}
initialValues={this.props.initialData}
>
<Form>
<Field
name="countryCode"
component={SelectField}
label="Country"
labelClassName="required"
options={Object.entries(sortedCountryList).map(x => ({
value: x[1][1],
label: x[1][0]
}))}
/>
</Form>
</Formik>
Run Code Online (Sandbox Code Playgroud)
我尝试通过 ref 访问它,然后通过this.props.values(如getFieldValue 或 Formik 中的类似建议)但两者都返回 undefined 或 null。我的道具没有任何“值”字段。
编辑:发现一个丑陋的方式:document.getElementsByName("countryCode")[0].value。更好的方法表示赞赏。
出于单元测试的目的,我需要覆盖Number.prototype.toLocaleString()它,以便始终使用en-US而不是默认行为来调用它.我理解覆盖一个接收参数的普通内置函数,但toLocaleString()不会将Number作为参数直接转换为字符串,所以我在这里很困惑.
我尝试了以下方法:
Number.prototype.toLocaleStringTest = Number.prototype.toLocaleString
Number.prototype.toLocaleString = function() { this.toLocaleStringTest('en-US') }
Run Code Online (Sandbox Code Playgroud)
但这个新toLocaleString()功能的结果总是如此undefined.顺便说一句,我确实调用了新函数,通过console.log("I am called!")在实现中添加临时函数来确保这一点.
我做错了什么 - 或者我是否想要实现一些不可行的东西?
我有一个异步方法返回Task:
public virtual async Task IReturnATask(Guid settingId)
Run Code Online (Sandbox Code Playgroud)
当我尝试在单元测试中像这样设置它时,
_service.Setup(m => m.IReturnATask(guid));
Run Code Online (Sandbox Code Playgroud)
起订量抱怨:
“调用需要返回一个值,因此必须有一个提供该值的相应设置。”
我应该如何定义这个异步方法的设置?
unit-testing ×3
javascript ×2
reactjs ×2
async-await ×1
c# ×1
database ×1
formik ×1
jestjs ×1
moq ×1
sql-server ×1
ssms ×1