小编sch*_*gel的帖子

为什么"关闭到目标数据库的现有连接"在SQL Server 2012 Management Studio上显示为灰色?

我通常使用SQL Server 2012 Management Studio从"bak"文件还原SQL Server数据库.我通过覆盖现有数据库来做到这一点.在"选项"页面中,有一个标记为"关闭与目标数据库的现有连接"的复选框,我主要检查它,因为目标数据库始终"正在使用",即使我刚刚重新启动MS SQL服务而且我是确保没有使用它的应用程序.

无论如何,在我客户的计算机上,我看到关闭现有连接的复选框是灰色的,没有任何信息.这是怎么发生的?谷歌搜索没有产生任何结果.

database sql-server ssms database-restore sql-server-2012

43
推荐指数
3
解决办法
2万
查看次数

如何开玩笑地模拟 Date.toLocaleDateString ?

我的 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 实现,但不考虑我的模拟返回值。

javascript unit-testing reactjs jestjs

11
推荐指数
2
解决办法
9204
查看次数

如何在不提交的情况下访问 formik 字段的当前值?

如何访问我的 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。更好的方法表示赞赏。

reactjs formik

8
推荐指数
2
解决办法
1万
查看次数

如何覆盖(或覆盖?)内置的Javascript函数

出于单元测试的目的,我需要覆盖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!")在实现中添加临时函数来确保这一点.

我做错了什么 - 或者我是否想要实现一些不可行的东西?

javascript unit-testing

4
推荐指数
1
解决办法
60
查看次数

如何在 Moq 4.13.1 中设置仅以严格模式返回任务的异步方法?

我有一个异步方法返回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)

起订量抱怨:

“调用需要返回一个值,因此必须有一个提供该值的相应设置。”

我应该如何定义这个异步方法的设置?

c# unit-testing moq async-await

2
推荐指数
1
解决办法
621
查看次数