小编run*_*us2的帖子

std :: make_unique <T> vs reset(新T)

我想问一个关于构造函数中的内存泄漏的问题.我们来考虑一个课程:

 class Foo
 {
   public:
      Foo(){ throw 500;} 
 };
Run Code Online (Sandbox Code Playgroud)

有什么区别

std::unique_ptr<Foo> l_ptr = std::make_unique<Foo>();
Run Code Online (Sandbox Code Playgroud)

std::unique_ptr<Foo> l_ptr;
l_ptr.reset(new Foo());
Run Code Online (Sandbox Code Playgroud)

在我看来,make_unique的解决方案应该保护我免受内存泄漏,但在这两种情况下我得到了相同的valgrind结果:

$ valgrind --leak-check=full ./a.out
==17611== Memcheck, a memory error detector
==17611== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17611== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==17611== Command: ./a.out
==17611== 
terminate called after throwing an instance of 'int'
==17611== 
==17611== Process terminating with default action of signal 6 (SIGABRT)
==17611==    at 0x5407418: raise …
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks smart-pointers unique-ptr c++11

10
推荐指数
1
解决办法
2894
查看次数

使用 moxios 模拟 axios 获取带有 queryParams 的请求

我正在尝试测试从 Firebase 获取数据的异步 Redux 操作。我使用 jest 和 moxios 来模拟异步调用

动作类型.js

export const FETCH_ORDERS_START = 'FETCH_ORDERS_START'
export const FETCH_ORDERS_SUCCESS = 'FETCH_ORDERS_SUCCESS'
export const FETCH_ORDERS_FAILED = 'FETCH_ORDERS_FAILED'
Run Code Online (Sandbox Code Playgroud)

订单.js

import * as actionTypes from './actionTypes'
import axios from './../../axios-orders'

export const fetchOrdersSuccess = (orders) => {
      return {
        type: actionTypes.FETCH_ORDERS_SUCCESS,
    orders: orders,
  }
}

export const fetchOrdersFailed = (error) => {
  return {
    type: actionTypes.FETCH_ORDERS_FAILED,
    error: error,
  }
}
export const fetchOrdersStart = () => {
  return {
      type: actionTypes.FETCH_ORDERS_START,
  }
}

export …
Run Code Online (Sandbox Code Playgroud)

unit-testing reactjs jestjs redux axios

5
推荐指数
1
解决办法
1785
查看次数

如何在反应中异步调用后测试状态更新和组件重新渲染

我正在编写一个简单的应用程序,单击按钮后,应该执行对 spotify API 的异步调用,并且当 promise 解决时,它应该更新组件的状态。我正在使用 React 钩子来管理组件中的状态。

在我的测试中,我模拟了 API 调用。

发现.jsx

export default class Spotify {
  constructor(token) {
    this.axiosInstance = axios.create({
      baseURL: baseURL,
      headers: buildHeaders(token),
    });
  }

  async getUserInfo() {
    const userInfo = await this.axiosInstance({
      url: `/me`,
    });
    return userInfo.data
  }
}

Run Code Online (Sandbox Code Playgroud)

Spotify模拟:

const getUserInfoMock = jest.fn();

const mock = jest.fn().mockImplementation(() => ({
  getUserInfo: getUserInfoMock,
}));

export default mock;
Run Code Online (Sandbox Code Playgroud)

用户.jsx

const User = props => {
  const [user, setUser] = useState(null);
  const {token} = useContext(AuthContext);
  const spotify = useMemo(() …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing asynchronous reactjs enzyme

5
推荐指数
2
解决办法
6857
查看次数

C#Linq查询作为函数参数

我正在使用linq从我的数据库中获取一些数据.当查询为空时我想抛出异常.

public class LinqDataBaseConnector : IDataBaseConnector
{
    public LinqDatabaseDataContext dataContext;

    public User getUser(string login, string password)
    {
        var query = (from c in dataContext.Users
                     where c.username == login && c.password == password
                     select c);

        if (query.Any())
        {
            return query.First();
        }
        else
        {
            throw new NullReferenceException("Empty query!");
        }
    }

    public HardwareConfiguration getHardwareConfiguration(int id)
    {
        var query = (from c in dataContext.HardwareConfigurations
                     where c.ID == id
                     select c);

        if (query.Any())
        {
            return query.First();
        }
        else
        {
            throw new NullReferenceException("Empty query!");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

从List <T>格式化字符串

我有一个列表

public class PolynomialCoefficients<T> : IEnumerable<T>
{
    private List<T> coefficients;

    public string ToString(string format)
    {
        StringBuilder polynomialString = new StringBuilder();
        char separator = ':';

        foreach(T coefficient in coefficients)
        {
            polynomialString.Append(String.Format("0.0000", coefficient.ToString()));
            polynomialString.Append(separator);
        }

        polynomialString.Remove(polynomialString.Length - 1, 1); 
        return polynomialString.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说列表包含元素:1,2,3我想调用ToString("0.000")并得到输出:1.000:2.000:3.000但每次输出类似于0.000:0.000:0.000

c# string format

0
推荐指数
1
解决办法
58
查看次数