标签: testcase

MSTest是否与NUnit的TestCase相当?

我发现TestCaseNUnit中的功能非常有用,可以快速指定测试参数,而无需为每个测试使用单独的方法.MSTest中有类似的东西吗?

 [TestFixture]  
 public class StringFormatUtilsTest  
 {  
     [TestCase("tttt", "")]  
     [TestCase("", "")]  
     [TestCase("t3a4b5", "345")]  
     [TestCase("3&5*", "35")]  
     [TestCase("123", "123")]  
     public void StripNonNumeric(string before, string expected)  
     {  
         string actual = FormatUtils.StripNonNumeric(before);  
         Assert.AreEqual(expected, actual);  
     }  
 }  
Run Code Online (Sandbox Code Playgroud)

nunit mstest rowtest testcase

100
推荐指数
4
解决办法
4万
查看次数

如何在具有nosetests的文件中指定单个测试?

我有一个名为test_web.py的文件,其中包含一个TestWeb类和许多名为test_something()的方法.

我可以像这样在类中运行每个测试:

$ nosetests test_web.py 
...
======================================================================
FAIL: checkout test
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/me/path/here/test_web.py", line 187, in test_checkout
...
Run Code Online (Sandbox Code Playgroud)

但我似乎无法进行个别测试.在同一个PWD中运行时,这些给我"没有这样的测试"错误:

$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
Run Code Online (Sandbox Code Playgroud)

这可能有什么问题?

python nosetests testcase

92
推荐指数
4
解决办法
3万
查看次数

使用JUnit测试内部类中的案例

我读到了结构化单元测试,每个类都有一个测试类,每个方法都有一个内部类.想象一下,这似乎是一种组织测试的方便方法,所以我在Java项目中尝试过.但是,内部类中的测试似乎根本没有被接受.

我大致这样做了:

public class DogTests
{
    public class BarkTests
    {
        @Test
        public void quietBark_IsAtLeastAudible() { }

        @Test
        public void loudBark_ScaresAveragePerson() { }
    }

    public class EatTests
    {
        @Test
        public void normalFood_IsEaten() { }

        @Test
        public void badFood_ThrowsFit() { }
    }
}
Run Code Online (Sandbox Code Playgroud)

JUnit不支持这个,还是我做错了?

java inner-classes junit4 testcase

62
推荐指数
5
解决办法
3万
查看次数

使用python unittest的抽象测试用例

是否有可能创建一个抽象TestCase,它将有一些test_*方法,但这TestCase不会被调用,那些方法只会在子类中使用?我想我将TestCase在我的测试套件中有一个摘要,它将被子类化为单个接口的一些不同实现.这就是为什么所有测试方法都是一些,只有一个内部方法发生变化的原因.我怎么能以优雅的方式做到这一点?

python unit-testing testcase

47
推荐指数
7
解决办法
2万
查看次数

NUnit TestCase with Generics

有没有办法将使用TestCase的泛型类型传递给NUnit中的测试?

这是我想做的但语法不正确...

[Test]
[TestCase<IMyInterface, MyConcreteClass>]
public void MyMethod_GenericCall_MakesGenericCall<TInterface, TConcreteClass>()
{
    // Arrange

    // Act
    var response = MyClassUnderTest.MyMethod<TInterface>();

    // Assert
    Assert.IsInstanceOf<TConcreteClass>(response);
}
Run Code Online (Sandbox Code Playgroud)

或者如果没有,实现相同功能的最佳方法是什么(显然我在实际代码中会有多个TestCases)?

用另一个例子更新......

这是传递单个泛型类型的另一个示例...

[Test]
[TestCase<MyClass>("Some response")]
public void MyMethod_GenericCall_MakesGenericCall<T>(string expectedResponse)
{
    // Arrange

    // Act
    var response = MyClassUnderTest.MyMethod<T>();

    // Assert
    Assert.AreEqual(expectedResponse, response);
}
Run Code Online (Sandbox Code Playgroud)

c# generics nunit unit-testing testcase

44
推荐指数
6
解决办法
2万
查看次数

在unittest中测试之间是否保持变量?

如何在从TestCaseunitttest 继承的同一对象中保留更改?

from unittest import TestCase, main as unittest_main


class TestSimpleFoo(TestCase):
    foo = 'bar'

    def setUp(self):
        pass

    def test_a(self):
        self.assertEqual(self.foo, 'bar')
        self.foo = 'can'

    def test_f(self):
        self.assertEqual(self.foo, 'can')


if __name__ == '__main__':
    unittest_main()
Run Code Online (Sandbox Code Playgroud)

即:我希望上面的两个测试通过

python persistence unit-testing testcase python-unittest

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

如何将双引号作为参数转义为NUnit TestCase?

我尝试编写以下TestCase用于在VB.net中编写的NUnit测试:

<TestCase("FirstNode", "<node id=\"FirstNode\">")>
Public Sub GetNode_GivenSomeNodeId_ReturnCorrectNode(ByVal nodeId as String, 
                                            ByVal expectedXml as String)

    (Call the method under test and request the xmlNode with the provided id...)

    Assert.AreEqual(expectedXml, returnedXml)
End Sub
Run Code Online (Sandbox Code Playgroud)

作为第二个参数传递给测试用例的xml节点无效,因为这显然不是转义双引号的正确方法.我确信我可以找到一种解决方法,以检查测试中的方法是否返回了预期的XML节点,但我很好奇:

是否有一些聪明的方法来传递这样的字符串,包含双引号,作为NUnit测试的参数?

vb.net nunit escaping testcase double-quotes

36
推荐指数
1
解决办法
6万
查看次数

java.lang.NoClassDefFoundError:android和junit test

我看到我不是唯一一个有这个问题的人,但我找不到正确的答案.我有一个我想测试的android项目.我为我的项目的每个类创建一个junit测试类.我的问题是当我运行我的测试时,我有以下错误:

java.lang.NoClassDefFoundError: android/content/Context
Run Code Online (Sandbox Code Playgroud)

这是我的班级考试:

public class DevicesBDDTest extends TestCase {

    DevicesBDD bdd;

    /**
     * @throws java.lang.Exception
     */
    protected static void setUpBeforeClass() throws Exception {
    }

    /**
     * @throws java.lang.Exception
     */
    protected static void tearDownAfterClass() throws Exception {
    }

    protected void setUp() throws Exception {
        super.setUp();
        Context ctx = mock(Context.class);
        final MaBaseSQLiteInterface mockMaBaseSQLite = mock(MaBaseSQLiteInterface.class);
        bdd = new DevicesBDD(ctx){
            @Override
            public MaBaseSQLiteInterface createMaBaseSQlite(Context context) {
                return mockMaBaseSQLite;
            }
        };
    }


    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void test() …
Run Code Online (Sandbox Code Playgroud)

junit android testcase

31
推荐指数
3
解决办法
9245
查看次数

如何将新的List <int> {1}放入NUNIT TestCase中?

我有方法:

public static int Add(List<int> numbers)
    {
        if (numbers == null || numbers.Count == 0)
            return 0;

        if (numbers.Count == 1)
            return numbers[0];


        throw new NotImplementedException();
    }
Run Code Online (Sandbox Code Playgroud)

这是我对它的测试,但它new List<int> {1}在TestCase 中不喜欢:

    [TestCase(new List<int>{1}, 1)]
    public void Add_WithOneNumber_ReturnsNumber(List<int> numbers)
    {

        var result = CalculatorLibrary.CalculatorFunctions.Add(numbers);

        Assert.AreEqual(1, result);
    }
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

我必须这样做:

    [Test]
    public void Add_WithOneNumber_ReturnsNumber()
    {

        var result = CalculatorLibrary.CalculatorFunctions.Add(new List<int>{7});


        Assert.AreEqual(7, …
Run Code Online (Sandbox Code Playgroud)

c# tdd nunit testcase

30
推荐指数
6
解决办法
2万
查看次数

在NUnit 3中使用[TestCase]属性测试异常?

如何使用NUnit3测试TestCase中的异常?

假设我的方法Divide(a,b)定义如下:

public double Divide(double a, double b)
{
    if(Math.Abs(b) < double.Epsilon) throw new ArgumentException("Divider cannot be 0");
    return a/b;
}
Run Code Online (Sandbox Code Playgroud)

我想使用NUnit 3.0测试用例来测试这个方法,所以也许我有:

[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
public void TestDivide(double a, double b, double result)
{
    Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
Run Code Online (Sandbox Code Playgroud)

有没有办法指定一个测试用例,它会导致Divide()抛出ArgumentException,并以某种方式将其作为预期结果,例如:

[TestCase(-10, 2, -5)]
[TestCase(-1, 2, -0.5)]
[TestCase(-1, 0, ExpectedResult = TypeOf(ArgumentException)]
public void TestDivide(double a, double b, double result)
{
    Assert.That(_uut.Divide(a, b), Is.EqualTo(result));
}
Run Code Online (Sandbox Code Playgroud)

(当然我可以定义一个单独的测试方法并Assert.Throws()在此使用,所以这纯粹是出于好奇)

.net c# nunit exception testcase

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