我目前正在通过visual studio进行测试.在运行所有测试之前,我会自动创建一组具有已知凭据的用户,并在运行结束时删除这些用户.但是,有时我需要在中途取消我的测试.在这些情况下,测试永远不会有机会进行清理,这意味着测试运行中遗留了虚假的用户信息,并可能导致下一次测试运行崩溃(当它尝试将用户信息添加到数据库中时).无论如何,即使测试被取消,还是强制visual studio/mstest运行清理方法?
我知道一个选项是进行测试检查并确保用户信息不存在,如果确实在创建新用户之前删除了它.但这仍然无法解决取消的测试运行留下不需要的测试数据的问题.
更新:
对于错误传达很抱歉,但是在测试开始时清理数据不是一种选择.我给出了一个非常简单的问题视图,但简单地说,我没有简单的方法来确保在测试开始时不存在测试数据.所有清理必须在测试结束时进行.
我目前正在学习来自java背景的C#.为了让我的脚湿透,我决定制作一个简单的SMTP邮件应用程序.我很快就了解到C#提供了对同步和异步套接字的支持.
从我所看到的,使用同步套接字与异步套接字没有任何实际优势,因为后者不会阻塞,因此每次都不需要创建新线程.使用一个或另一个似乎也没有明显的开销.
所以我的问题是,使用同步套接字是否有优势,或者在大多数情况下坚持使用异步更好?
在第3章测试期间,我收到以下警告,这可以忽略吗?
RubyDep:警告:你的Ruby过时/错误.请升级.(要禁用>警告,请设置RUBY_DEP_GEM_SILENCE_WARNINGS = 1)运行选项: - 种子18589
好的,所以我有这个涉及两个类的问题.
Dice.h:
#pragma once
#include <random>
using std::random_device;
using std::uniform_int_distribution;
class Dice
{
public:
Dice(int Sides);
int roll(void);
protected:
int nSides;
random_device generator;
uniform_int_distribution<int> distribution;
};
Run Code Online (Sandbox Code Playgroud)
Dice.cpp:
#include "Dice.h"
Dice::Dice(int Sides)
{
nSides=Sides;
}
int Dice::roll(void)
{
random_device generator;
uniform_int_distribution<int> distribution(1,nSides);
return distribution(generator);
}
DmgCalc.h:
#pragma once
#include "CharSheet.h"
#include "Dice.h"
class DmgCalc
{
public:
DmgCalc(CharSheet P1, CharSheet P2);
bool Dodge();
int Attack();
int Roll();
protected:
int nP1Con, nP1Str, nP1Dex;
int nP2Con, nP2Dex, nP2Hlth;
Dice d6;
};
Run Code Online (Sandbox Code Playgroud)
DmgCalc.cpp:
#include "DmgCalc.h" …Run Code Online (Sandbox Code Playgroud) c# ×2
asynchronous ×1
c++ ×1
cloud9 ×1
mstest ×1
ruby ×1
sockets ×1
specflow ×1
synchronous ×1