0

単純なファクトリを単体テストしようとしていますが、型のようなメソッドを使用しようとしています。どうしたの?

私の単体テスト:

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Home;

namespace HomeTest
{
    [TestClass]
    public class TestFactory
    {
        [TestMethod]
        public void DoTestFactory()
        {
            InventoryType.InventorySelect select = new InventoryType.InventorySelect();
            select.inventoryTypes.Add("cds");

            Home.Services.Factory.CreateInventory get = new Home.Services.Factory.CreateInventory();
            get.InventoryImpl();

            if (select.Validate() == true)
                Console.WriteLine("Test Passed");
            else
                if (select.Validate() == false)
                    Console.WriteLine("Test Returned False");
                else
                    Console.WriteLine("Test Failed To Run");

            Console.ReadLine();

        }
    }
}

私の工場:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Home.Services
{
    public class Factory
    {
        public InventorySvc CreateInventory()
        {
            return new InventoryImpl();
        }

    }
}
4

3 に答える 3

1

呼び出しているメソッドのインスタンスを作成してから、それが呼び出していたメソッドを呼び出そうとしています。代わりに、ファクトリを作成してから を呼び出しますCreateInventory

var factory = new Home.Services.Factory();
var inventory = factory.CreateInventory();
  • selectandgetを変数名として使用することは避ける傾向があります。なぜなら、それらは他の場所で使用される場合のキーワードだからです。
于 2012-09-24T15:36:35.763 に答える
1

CreateInventory()Factoryクラスのメソッドです。

あなたはそれをしようとしnewています - これは不可能です。

var get = new Home.Services.Factory();
var inventory = get.CreateInventory();
于 2012-09-24T15:36:49.433 に答える